函数式编程
基础数据类型:
Int Float Double Bool(布尔) Character(字符型) String
变量常量:
var let (* 命名var时前面首字母大写)
类型推断:
命名类型后会根据命名的类型进行推断
判断数据类型:
根据输出的类型进行判断
输出语句:
print()
拼接字符串:
\()语法 和+号 语法
print(a + "\(c)")
print( "a \(c)")
注释
//单行
/* */多行
类型别名:已存在的类型取另外一个名字(大名和小名区分)
typealias a=Int
typealias S = String
let c:S ="ASD"
var d:String = "world"
print(c + d) 输出ASD world
类型转换:类型()和??语法
nil = null
var a ="4"
var c = Double(a) ?? 0 //能转就把转化的Double(a)付给c变成4.0 不能转就把0付给c变成0.0
Bool 非0 就是true
可选类型:Optional()
比如var let可以有值可以没有值
var a:Int? = 234
var b:Int? = nil 有值赋值没值給nil
叹号语法直接拿真实的值(a!)
print(!a) 输出234
print(a) 输出 Optional(234)
if else:
var a:Int? = 10
if(a == nil)
{
print("a没有值")
}
else
{
print("a的值 = " + String(a!))
}
输出a的值 = 10
元组类型:
不同数据类型封装在一起整体操作
var a =(1,25.5,"hello","a",true)
var b:(Int,String) = (10,"abc")
有和java相同的索引
print(b.0) 输出10
涉及到的深浅拷贝
元组是值传递不是传引用
var a =("hello",true)
var b =a
b.0 = "world"
print(a) 输出("hello",true)
print(b) 输出("world",true)
let (_,name1,name2) = ("abc",true,1.5)
_表示忽略 输出时abc被忽略
运算符:
+ - * / 运算符
?? 合并空值运算符
var a:Int? = 100
var value = a ?? 0
等于下面这句的简写
var value1 = a ! = nil ? a! : 0