第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Swift vs. Kotlin 之變量定義

標(biāo)簽:
Android

Kotlin 君和 Swift 君在一个团队一起开发已经很久了由于平台的差异性他们经常会进行一些技术上的交流PK「Kotlin vs. Swift」课程就是他们在互相切磋是的语录。

变量定义

Kotlin

你看下我们 Kotlin 定义变量太酷了比我们之前用 Java 方便太多了你们 Swift 声明变量方便吗

Swift

哦你们是怎么样的

Kotlin

我们可以直接这样定义一个变量 val b = 2 Kotlin 可以自行推断变量的类型要是 Java 就不行了必须要给每个变量定义类型。

Swift

我们这里也有类型推断的功能我们声明一个变量直接 let count = 10 就可以了和你们差不多。

Kotlin

咦你们用 let 声明变量和我们不太一样。

Swift

是的我们用 let 声明常量用 var 声明变量而且我们常量还分为储值变量和计算变量。

Kotlin

储值变量和计算变量是个什么概念我们这里没有。

Swift

像 var count = 10 这样的定义就是储值变量。像

var <variable name>: <type> {
    get {
        <statements>
    }
    set(<setter name>) {
        <statements>
    }}

这样定义为变量自定义了 getter 和 setter 方法这样每次获取变量值得时候都要经过一些的计算才能得到变量的值所以叫计算变量。

Kotlin

这个和我们定义 getter 和 setter 方法一样吗。我们完整的变量定义是这样的

var <propertyName>[: <PropertyType>] [= <property_initializer>]    [<getter>]
    [<setter>]

其中 initializer、getter 和 setter 是可以省略的但是我们没有计算变量这个概念。

Swift

恩我们定义变量的语法是差不多的除了 let 和 val 的差别。

Kotlin

哎你们的计算变量能不能给自己赋值啊如果可以赋值的话和储值变量有什么差别呢

我们 getter 和 setter 方法里面有个「支持域」的概念可以通过「支持域」直接给变量赋值所以重写 getter 和 setter 方法也只是实现不一样本身没有质的差别。

Swift

我们不行在 getter 和 setter 只能通过另外一个储值变量来保存计算的结果。

Kotlin

这点还是有差异的因为你们 getter 和 setter 不能给当前变量赋值只能进行计算的工作所以你们才有计算变量的概念。

Swift

应该是这样的。

知识点总结

Kotlin

Kotlin 定义变量的完整语法

var <propertyName>[: <PropertyType>] [= <property_initializer>]    [<getter>]
    [<setter>]

其中 initializer、getter 和 setter 是并不是必须的。在属性类型可以通过 initializer 推断的情况下属性类型也可以不声明。

val a: Int = 1  // 直接声明val b = 2   // `Int` 类型是推断出来的val c: Int  // 在没有初始化赋值的化需要定义类型

Kotlin 制定定义只读变量(read-only variable又叫常量)和变量(mutable variable)分别用 val和 var 关键字修饰。

val a: Int = 1 // 不可再次赋值var b: Int = 1 // 可再次赋值

Swift

Swift 声明常量用 let 关键字常量的值在初始化后不能被再次修改

let <constant name>[: <type>] = <expression>

Swift 声明储值变量用 var 关键字变量的值可以被任意修改

var <variable name>[: <type>] = <expression>

Swift 声明计算变量用 var 关键字同时需要指定 set 和 get 的方式仅指定 get 则为只读计算变量

var <variable name>: <type> {
    get {
        <statements>
    }
    set(<setter name>) {
        <statements>
    }}

Swift 支持类型推断在有初始值的情况下可以省去类型声明例如

let count: Int = 10 // 常量var message: String = "Hello" // 变量

可以简写为

let count = 10 // Int 类型var message = "Hello" // String 类型

原文链接http://www.apkbus.com/blog-822415-63638.html

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消