swift基础01

let定义常量,不能修改

let a = 5
  a= 6//错误

var 定义变量可用于更改

var a = 5
  a = 6

swift中所有的基本类型都是值类型,包括String

swift中的类都是大写,下面的常量声明是显示指定类型

let i: Float = 5.5 //不指定类型编译器默认推断为double

//常用的类型String、character、bool、float、double、int

let bo = true
let str = "hello word"
let ch: Character = "a"

元祖类型(tuple),元祖声明的语法就是一个括号,逗号分隔用来存放多个数据

let t = (404, "not found")
let t1 = (1,2,3,4,5)
//通过下表来访问元祖
t.0
t.1

let t2 = (name: "CJ", age: 35.5)//不需要给每个成员都取名字
t2.name
t2.age

let t3:(name: String, age: Float) = ("cj2", 46.6)
t3.age
t3.name

let t4:(String, Float) = ("aaa", 5)
t4.0
t4.1

let t5:(name: String, Float) = ("bbb", 6)
t5.1

let t6:(String, Float) = (name: "xxx", agr: 55)
t6.0
t6.1
//t6.name 这是错误的,因为在声明的时候没有指定名字,所以不能用名字访问

下面的写法(声明的同时就赋值)不行
let t8: (name: String = "aaa", age: Float = 22)

 String类型

 
let str1: String
str1 = "aaa"

var str2 = "abcdefg"

str2.characters.count//取字符串长度

str2.startIndex//字符串开始下标

str2.endIndex //结束下标

str2[str2.startIndex]//取字符串第一个字符

str2[str2.startIndex +1]//不能 +

str2[str2.index(after: str2.startIndex)] //取字符串第一个字符后面的一个字符,即是 "b"

str2[str2.index(before: str2.endIndex)]//取字符串最后一个字符,即是 "g"

str2[str2.index(str2.startIndex, offserBy: 3)] //取字符串从下标0开始到第下标3的位置,既是 d

str2[str2.index(str2.endIndex, offsetBy: -3)] //取字符串从最后一个位置开始,倒数第3的位置 ,既是 e

str2.substring(to: str2.index(str2.startIndex, offsetBY: 3)) //截取字符串下标0开始,往后三个字符,既是 abc

str2.substring(from: str2.index(str2.startIndex, offserBy:3)) //截取字符串下标3往后的所有字符

str2.uppercased() //转大写

str2.lowercased() //转小写

str2.capitalized 首字母大写

str2.hasPrefix("abc")//是否有前缀 “abc”

str2.hasSuffix("abc")//是否有后缀

str2.contains("de") //是否包含 “de”

  

 swift操作符基本与c#,java一样

switch...case ,在swift里面,switch 没有break,匹配到的时候,会自动跳出,不会贯穿。

case里面必须全部包含比如:

bool,必须case:true,case:false;

但如果只有false那么default必须要加,否则报错。

let age = 5
switch age {
case 25:
  print("25")
}
case 35:
  print("35")
default:
  print("默认")

swift可以使用...,代表范围

switch age{
  case 1...60:
   printf("asd")      
default:
  print("fei")  
}

/********  集合 ArrayDictionarySet ***/

Dictonaty数组

var dic = ["a":abc, "b":"def" ]
dic["a"] //可用下标和key取数组
dic["c"] = "gg"//赋值
dic.count
//循环取key
for k in dic.keys{
   print(k)  
}

for v in dic.values{
  print(v)      
}

for (k,v) in dic{
  print("key is (k) value (v)")  
}

 Set集合

set是一个值不重复,有相同的值,编译器不会报错,但会忽略掉重复的值,并且是无序的

var s: Set<Int> = [1,2,3,4,5,5]
s.count
s.insert(2) //插入值2
var s1: Set<Int> = [2,3,6,7]
let r1 = s.intersection(s1) // s,s1集合相交的值 及2,3
s.union(s1) //互补
 

Array集合

let arr2: Array<Int> = Array<Int>()
var arr3 = [1,2,3,3]
let arr4: Array<Int> = []
arr3[0]
arr3.append(5)
arr3.append(contentsOf: [6,7,8])
arr3 += [10,11]
//arr3.insert(contentsOf: <#T##Collection#>, at: <#T##Int#>)
//arr3.remove(at: <#T##Int#>)

  

  

  

原文地址:https://www.cnblogs.com/LiaoYJ/p/6080703.html