Kotlin操作符的使用方法與其他語言差不多,最大的特點就在于infix function call(事實上infixfunctioncall并不是操作符的特性,而是函數(shù)的特性)和操作符重載.
可以看到在Kotlin中大部分的操作符都與一個函數(shù)相對應(yīng),之所以這樣做,大概是為了進行操作符重載.
Kotlin官方文檔中強調(diào)"=賦值"操作在Kotlin中不是操作符,換句話說類似于x = y = z這樣的連續(xù)賦值并不被允許(甚至賦值操作也不能和常規(guī)的表達式混合寫).
我們知道在C++語言里面操作符就是一個函數(shù),在Kotlin中也是如此.
至于infix function call,目前來看,如果在類中定義了只包含一個參數(shù)的函數(shù),比如Int.plus(Int)函數(shù)是在Int類中定義,而且只有一個參數(shù),那么這樣的函數(shù)就可以簡寫.val x = 1.plus(1)可以簡寫為val x = 1 plus 1
上面的代碼運行結(jié)果如下:
至于操作符重載,如下:
運行結(jié)果如下:
操作符重載并不能增加新的操作符,也不能改變操作符的優(yōu)先級和結(jié)合性.
操作符的結(jié)合性(左結(jié)合,右結(jié)合)與Java相同,然而操作符的優(yōu)先級官方文檔并未給出,目前來看和Java并不完全相同,這主要是因為Kotlin中操作符和Java中性質(zhì)并不完全相同.
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:https://my.oschina.net/yuanhonglong/blog/467303