Swift笔记

144 阅读1分钟
函数式编程
基础数据类型:
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