swift常量与变量 字符串 数组 字典 元组 循环遍历

// 在导入框架时,直接"import 框架名"

import Foundation

各语言后缀

  • C : .c

  • OC : .m

  • Swift: .swift |-> 混编后的后缀 .mm

  • C++ : .cpp /

①print打印的内容会自己单独一行,语句不需要时使用 “ ; ”作为结尾
②“ ;”的作用在swift中用于多句代码写在一行时分割使用

print("Hello, World!")
print("Hello swift")

量的命名规范:

// 1、符合UNICODE编码标准的均可以作为量的名称
// 2、尽管如此,我们仍然不可以使用系统关键字,以及不推荐使用表情和较特殊的字符来作为量的名称,并且要规范命名,见名知意

常量 使用let修饰,程序运行期间不可以修改的量

let number = 10
let string = "瑾年绝流芳"

变量 使用var修饰,程序运行期间可以被修改的量

var f1 = 10.0
print(f1)
f1 = 3.242592653589
print(f1)

// 在给未设定类型的量赋初值时,必须要有初值
// var integer1 ;(这样定义变量是不对的)

// 定义一个具备类型的量
// 数值型数据

var integer1:Int = 10
var double1:double_t = 1.414
var float:Float = 9.18

// 布尔型

var b1:Bool = false

// 字符型

var string1:String = "雨滴落在湖面,痒"
var character1:Character = "🌹"// 只能写一个字符

// 练习

var integer2:Int = Int()
var double2:Double = Double()
var float2:Float = Float()
var b2:Bool = Bool()
var string2:String = String()
//var character2:Character = Character()不能用,(例外)错误写法

print(integer2)
print(double2)
print(float2)
print(b2)
print(string2)
// 在打印时,若想输出多种内容,需要使用双引号包括内容,其中的量需要使用\(var)的方式来参与
// "\",转义字符

print("integer:\(integer2),double:\(double2),float:\(float2),bool:\(b2),string:\(string2)")

swift不允许量的隐式转换(不能将一个浮点值赋值给整型)必须使用强制转换

var num = 798;
var subString = "艺术家"
var totalName = String(num) + subString

print(totalName)

判断字符窜是否为空

var simpleString = String()
simpleString = ""
if simpleString.isEmpty{

    print("来也匆匆,去也冲冲")
}else{

    print("空山新雨后,天气晚来秋")
}

var str1 = "asd"
var str2 = "acd"
if str1 == str2 {

    print("str1与str2相等")
}else{

    print("str1与str2不相等")
}
str1 += str2
print(str1)

字符串拼接方式
// + :返回一个新值,原值不变
// += :直接对自身进行修改

var subString1 = "上海自来水"
var subString2 = "来自海上"

var subString3 = subString1 + subString2
print("subString1:\(subString1) subString3:\(subString3)")

subString1 += subString2
print("subString1:\(subString1) subString2:\(subString2)")

获取字符串长度

let 🇨🇳 = "我们是共产主义接班人🇨🇳"
var 💩 = "某某某"
print(🇨🇳.characters.count)

数组
①swift中数组可以存储所有swift数据类型
②swift中的数组中必须存储同一类型的值

// 第一种方式

var array1 = [1,2,3,4,5];

// 第二种创建方式

var array2:Array = ["a","b","c","d"]
print(array2)

// 空数组,但必须指定内部元素类型

var array3 = Array<Int>()
var array4 = [String]()

var array = [String]()

// 增

array.insert("iOS", atIndex: 0)   // 打印结果array = ["iOS"]
array.append("Android") // 打印结果array = ["iOS", "Android"]

// 删

array.removeAtIndex(1)  //打印结果 array = ["iOS"]

// 改

array[0] = "WindowsPhote"  // 打印结果array = ["WindowsPhote"]

// 查

print(array)

// 对数组间进行操作

var tempArray = ["Meego","Ubuntu"]

// 新数组存储结果

var resultArray = array + tempArray
print(resultArray)   // 打印结果resultArray = ["WindowsPhote", "Meego", "Ubuntu"]

// 源数组存储结果

array += tempArray
print(array)  // // 打印结果array = ["WindowsPhote", "Meego", "Ubuntu"]

// 判断数组是否存在某一元素

let bool = array.contains("Ubuntu")
print("数组\(bool)存在这个元素")

// 数组元数个数

print(array.count)

字典
①swift中的字典的键值对可以是任意类型
②swift的字典中,尽管可以是任意类型,但是所有key值类型必须统一,所有value值类型也必须统一

OC中数组(有序,元素可以重复);
字典(无序,有key值不需要排序,主要是键值映射关系,key值必须遵循NSCopying协议,元素不重复)和集合(内容杂乱不排序,元素不可以重合)都是无序的

var dict1 = [1:"田家旭",2:"刘惠萍",3:"卢桥东",4:"马泽坤"]

// <key,value>的类型限定
var dict2:Dictionary<Int,String> = [:]
var dict3 = Dictionary<Int,String>()
print(dict1)

var dict = ["笑":"😊","哭":"😭","怒":"😡"]

// 增

dict["笑哭"] = "😂" // 打印结果 dict = ["笑哭": "😂", "哭": "😭", "怒": "😡", "笑": "😊"] 

// 删

dict.removeValueForKey("笑哭") // 打印结果 dict = ["哭": "😭", "怒": "😡", "笑": "😊"] 

// 改

dict["哭"] = "😢"

// 查

print(dict)
print(dict["怒"])  // Optional("😡")

// 其他属性
// 键值对个数

print(dict.count)
print(dict.keys)不好使,key和value都出来了
print(dict.indexForKey("怒"))不好使。

元组
①swift中用来存储一组数据的集合,可以是不同数据类型
②有序集合

var collection11 = ("马泽坤","男","65kg",19,false)
var collectionl2:(String,Bool,Float) = ("语文",true,93.7)

// 带有外部变量的的元素

var status:(name:String,gender:String,age:Int,spouse:Array) = ("马泽坤","男",19,["刘亚彬","张鹏"])

// 根据外部变量名来访问元祖元素

print(status.spouse[0])

// 根据下标来访问

print(status.3[1])

程序结构

// 循环结构
// ①

for var i = 0; i < 10 ; i++ {

    print("第\(i)次陪你去看海")

}

// ② 开区间,1~9

for var i in 1..<10{

  print("第\(i)次吃饭")
}

// ③ 闭区间,1~10

for var i in 1...10{

    print("第\(i)次初吻")
}

// for...in遍历数组和字典

var fruits = ["banana","apple","orange","grape"]

for fruit in fruits {

    print(fruit)
}

// 遍历字典

var music = ["name":"上心","album":"巡回演唱专辑","duration":"4:32"]

// 注意此处的key和value均为遍历使用的中间变量,可以是任何名称

for (key,value) in music {

    print("\(key):\(value)")
}

// while

var count = 10
while count > 1 {

    print("\(count-1)跑起来")
    count -= 1 // count--在swift中弃用雇佣count -= 1代替
}

// repeat

repeat { // 类似于do...while,无论条件是否成立,都会先执行一次
    print("第\(count)次喝醉")
    count -= 1
}while count > 0   

推荐阅读更多精彩内容

  • 本章将会介绍 数组类型(Arrays)集合类型(Sets)字典(Dictionaries)控制流 数组类型(Arr...
    寒桥阅读 380评论 0 2
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 1,609评论 1 10
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 2,466评论 3 44
  • 斗罗大陆,魂师的天堂,但这也仅是对于强者,弱肉强食才是亘古不变的自然法则,欲望会促使人不断前进,但却也是填不满的无...
    张若虚i阅读 191评论 0 0
  • 上穷碧落下黄泉,两处茫茫皆不见。一袭白衣,行于河畔,远方,一片幽蓝的紫光闪烁,是彼岸花盛开了,不似传闻的妖艳,却带...
    总有一个名字阅读 122评论 0 6