Swift 基本语法(一)— 值类型

Swift 与 OC 语言的区别

1.Swift 面对协议编程、 面向函数编程、面向对象编程。 函数成了一等公民,可以当参数、返回值等。 闭包。
2.Swift是一种类型安全的语言。
3.值类型增强: 枚举、元组、结构体都是值类型。 平时的Int Double等数据类型也是用Struct实现,都是值类型。
4.枚举功能增强。 可以是浮点型、字符串。 还可以拥有属性、方法。支持协议、扩展、泛型等。
5.协议、扩展更丰富。 协议可以用于值类型。(枚举、结构体)

Swift 的基本语法

1.变量声明用: var、常量声明用: let
可以在一行中定义多个常量、变量,用逗号隔开即可。


常量变量.png

2.Swift数值类型
有8、16、32、64位之分。Int8、Int32; 但是可以通用Int,自动和当前平台位数一致。 可以用max 、min获取对应最大最小值。
Double 有15位的精度,float 6位精度。 推荐使用Double。 Bool : true false。 和1、0是不用的。


数值范围.png

3.元组Tuple
不管是可变类型还是常量类型,元组创建后,是不可以添加、删除元素的。
修改值但是不能改变原类型。除非是any类型。
元组也可以用于函数当参数、返回值。 用元组可以给一个函数返回多个返回值。

//元组  可以定义多个数据类型, 用()包含, 可以指定名称,也可以省略,下面访问的时候有点区别。
let errorMessage = (errorCode:404, errorMsg:"Not Found",   303, "reAddress")
print(errorMessage.errorCode)  //访问第一个元素   404
print(errorMessage.3)  //访问第四个元素   reAddress

4.Swift的可选项 optional
Swift里nil不是指针,是值缺失的一种特殊类型,任何类型的可选项都可以设置成nil.
只有可选项可以赋值成nil,其它类型会报错。
Optional 展开。 用!隐式展开。
Optional 是Swift里的一个枚举类型. none = nil ; some = 具体的值

//var name: String = nil  //非可选项赋值nil 报错。。
var name: String? = nil
var name1: String? = "Eddiegooo"
var age: Optional<Int> = 3
//使用
let counts = name1.unsafelyUnwrapped.count   //这样可以不解包 没问题
if name1 != nil {
    let count = name1?.count
}

5.Swift 字符串
初始化。 多行字符串""" 三个双引号包裹。 特殊字符加\

//初始化
var name = "Swift Sting"
var name1 = String()
if name1.isEmpty {
    print("This string is empty")
}
var moreLineString = """
This is more lines String。
   为了好看 我给他设置成几行显示;\
在swift里是很方便的啊
"""
print(moreLineString) //(在第二行末尾加上反斜杠,就不会自动换行了) 注意在定义字符串的时候,你怎么写空行、空格都是有效的
//swift5 新特性  扩展字符串.  包裹在##里面,里面的特殊字符不起作用。 直接显示\n字符串
var newString = #"new Sting \n in swift 5"#
newString = #"new Sting \#n in swift 5"#   //加上与前后#号个数相同这样子里面的\n就起作用了。 

字符串的可变性

var welCome = "Hello"
welCome += " World" //拼接字符串操作
//遍历字符串字符
for c in welCome {
    print(c)
}
//字符串插值操作
let num = 6
print("\(welCome) , age = \(num)")

字符串索引

var customString = "HelloWorld"
print(customString[customString.startIndex])  //但是不可以使用证书下标访问[1]  报错
//插入字符
customString.insert("!", at: customString.endIndex)
print(customString)
customString.insert(contentsOf: " Welcome to China", at: customString.index(before: customString.endIndex))
print("new Sting = \(customString)")
customString.insert(contentsOf: " ", at: customString.index(customString.startIndex, offsetBy: 5))
print(customString)
//删除
customString.remove(at: customString.index(before: customString.endIndex))
let range = customString.index(customString.endIndex, offsetBy: -5)..<customString.endIndex
customString.removeSubrange(range)
print(customString)

子字符串 subString。 和原字符串公用同一块内存。

var welCome = "hello, world"
var welCome1 = "world"

let index = welCome.index(of: ",") ?? welCome.endIndex
let subSting = welCome[..<index]  //注意 这是subSting类型
print(subSting)
let newString = String(subSting) //这就将subSting转化为Sting类型了
//字符串比较
print(welCome == welCome1)
print(welCome.hasPrefix("hello"))
print(welCome1.hasSuffix("ld"))

未完下篇继续。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容