Swift介绍
Swift这门编程言语首要用于iOS和MacOS的开发,能够说是非常盛行的一门编程言语,我只想说,假如你会Kotlin,那么你学习Swift会非常简单,反之亦然。下载XCode,然后你就能够创立Playground练习Swift语法了。 playground这个名字起的好,翻译成中文就是操场,玩的当地,也就是说,你能够尽情的测试你的Swift代码。
声明变量和常量
Kotlin的写法:
var a: Int = 10
val b: Float = 20f
Swift的写法:
var a: Int = 10
let b: Float = 20.0
你会发现它俩声明变量的方法如出一辙,而常量也仅仅关键字不一样,数据类型咱们暂不考虑。
导包
Kotlin的写法:
import android.app.Activity
Swift的写法:
import SwiftUI
这儿kotlin和swift的方法如出一辙。
整形
Kotlin的写法:
val a: Byte = -10
val b: Short = 20
val c: Int = -30
val d: Long = 40
Swift的写法:
let a: Int8 = -10
let b: Int16 = 20
let c: Int32 = -30
let d: Int = -30
let e: Int64 = 40
let f: UInt8 = 10
let g: UInt16 = 20
let h: UInt32 = 30
let i: UInt = 30
let j: UInt64 = 40
Kotlin没有无符号整型,Swift中Int32等价于Int,UInt32等价于UInt。无符号类型代表是正数,所以没有符号。
基本运算符
Kotlin的写法:
val a: Int = 10
val b: Float = 20f
val c = a + b
Swift的写法:
let a: Int = 10
let b: Float = 20
let c = Float(a) + b
Swift中没有隐式转换,Float类型不必写f。这儿Kotlin没那么严厉。
逻辑分支
Kotlin的写法:
val a = 65
if (a > 60) {
}
val b = 1
when (b) {
1 -> print("b等于1")
2 -> print("b等于2")
else -> print("默许值")
}
Swift的写法:
let a = 65
if a > 60 {
}
let b = 1
switch b {
case 1:
print("b等于1")
case 2:
print("b等于2")
default:
print("默许值")
}
Swift能够省掉if的括号,Kotlin不能够。switch的写法倒是有点像Java了。
循环句子
Kotlin的写法:
for (i in 0..9) {
}
Swift的写法:
for var i in 0...9 {
}
// 或
for var i in 0..<10 {
}
Kotlin仍是不能省掉括号。
字符串
Kotlin的写法:
val lang = "Kotlin"
val str = "Hello $lang"
Swift的写法:
let lang = "Swift"
let str = "Hello \(lang)"
字符串的声明方法如出一辙,拼接方法略有不同。
数组
Kotlin的写法:
val arr = arrayOf("Hello", "JYM")
val arr2 = emptyArray<String>()
val arr3: Array<String>
Swift的写法:
let arr = ["Hello", "JYM"]
let arr2 = [String]()
let arr3: [String]
数组的写法稍微有点不同。
Map和Dictionary
Kotlin的写法:
val map = hashMapOf<String, Any>()
map["name"] = "张三"
map["age"] = 100
Swift的写法:
let dict: Dictionary<String, Any> = ["name": "张三", "age": 100]
Swift的字典声明时有必要初始化。Map和Dictionary的本质都是哈希。
函数
Kotlin的写法:
fun print(param: String) : Unit {
}
Swift的写法:
func print(param: String) -> Void {
}
或
func print(param: String) -> () {
}
除了关键字和回来值分隔符不一样,其他简直如出一辙。
高阶函数和闭包
Kotlin的写法:
fun showDialog(build: BaseDialog.() -> Unit) {
}
Swift的写法:
func showDialog(build: (dialog: BaseDialog) -> ()) {
}
Kotlin的高阶函数和Swift的闭包是相似的概念,用于函数的参数也是一个函数的情况。
创立对象
Kotlin的写法:
val btn = Button(context)
Swift的写法:
let btn = UIButton()
这儿kotlin和swift的方法如出一辙。
类承继
Kotlin的写法:
class MainPresenter : BasePresenter {
}
Swift的写法:
class ViewController : UIViewController {
}
这儿kotlin和swift的方法如出一辙。
Swift有而Kotlin没有的语法
guard…else的语法,通常用于登录校验,条件不满足,就执行else的句子,条件满足,才执行guard外面的句子。
guard 条件表达式 else {
}
别的还有一个重要的语法就是元组。元祖在Kotlin中没有,但是在一些其他编程言语中是有的,比方Lua、Solidity。元组首要用于函数的回来值,能够回来一个元组合,这样就相当于函数能够回来多个回来值了。 Swift的元组:
let group = ("哆啦", 18, "全宇宙最强吹嘘首席前台")
Lua的多回来值:
function group() return "a","b" end
Solidity的元组:
contract MyContract {
mapping(uint => string) public students;
function MyContract(){
students[0] = "默许姓名";
students[1] = "默许年纪";
students[2] = "默许介绍";
}
function printInfo() constant returns(string,uint,string){
return("哆啦", 18, "全宇宙最强吹嘘首席前台");
}
}
总结
编程言语许多当地都是相通的,学会了面向对象编程,你学习其他编程言语就会非常简单。学习一门其他编程言语的语法是很快的,但是要熟练掌握,还需要对该编程言语的API有大量的实践。仍是那句话,编程言语仅仅工具,你的编程思维的高度才是决议你水平的重要目标。所以我给新入行互联网的同学的建议是,你能够先学习面向对象的编程思想,不必局限于一门言语,能够多了解下其他的编程言语,挑选你更喜欢的方向。挑选好后,再深耕一门技能。每个人的道不一样,或许你就更适合某一个方向。