Swift基本数据类型

使用 let 来声明常量,使用 var 来声明变量。一个常量的值,在编译的时候,并不需要有明确的值,但是你只能 为它赋值一次。也就是说你可以用常量来表示这样一个值:你只需要决定一次,但是需要使用很多次。


基本数据类型(声明和使用)

        // 声明变量使用var
        var a = 10;
        a = 20;
        print("it is a:\(a)");
        // 使用var声明变量,不用明确地声明类型,声明的同时赋值的话,编译器会自动判断类型
        // 指定类型
        var aDouble : Double = 10.0
        aDouble = 11.0
        var aString : String = "haha"
        aString = "nini"
        // 注意的是:使用var声明变量,如果变量不会被第二次使用赋值,就会出现烦人的警告
        // 会一直提示你使用let

这里写图片描述
这里写图片描述




        // 声明常量使用let
        let b = 10
        print("\(b)");
        // 注意的是:使用let声明常量,如果常量不被使用也会出现烦人的警告
        // 一旦赋值就不能修改,否则直接报错

        let cStr = "hello"
        let ccStr = cStr + String(b)
        print("\(ccStr)");
        // 强转(类似Java的)

        // 也可以使用\(变量)格式来拼接
        let cccStr = cStr + " \(b)";
        print(cccStr);

这里写图片描述


字符串

// 在OC中定义字符串用 @"". Swift中用""
// 注意点: OC中的字符串是NSString, Swift中的字符串是String
//        OC中的字符串是一个对象, 继承于NSObjcte
//        Swift中的字符串是一个结构体
//        Swift中的字符串的性能比OC中的高
var str: String = "lnj "

// 拼接
var str2 = "cool"

str += str2

// 格式化
let num = 30
let name = "lnj"
// 目标:  name = lnj , age = 30
// 在Swift中可以使用 \()来拼接其它值
var str3 = "name = \(name), age = \(num)"

// 09: 08: 13
// 注意: 所有的值都必须放到数组中, 哪怕只有一个值也需要放到数组中
var str4 = String(format: "%02d: %02d: %02d", arguments: [9, 8, 13])


// 截取
// 注意: 在Swift中, 如果需要截取字符串, 建议使用OC的字符串来截取, 因为Swift中String的字符串截取方法使用起来非常复杂和蛋疼
// Swift中的字符串可以和OC中的字符串非常非常方便的进行转换
var str5: NSString = "xmg nb"
var str6 = "xmg fc nb" as NSString

var subStr = str5.substringWithRange(NSMakeRange(1, 3))


// Swift中的字符串是支持直接遍历的
var str7 = "www.520it.com"
for c in str7.characters
{
    print(c)
}


数组

/*
定义数组时如果使用let就代表是一个不可变数组
如果使用var就代表是一个可变数组
*/
// 和OC数组的区别就是去掉前面的@符号
let arr0 = ["ooo", "xxx"]

// Siwft中的数组可以存储任意类型
let arr2 = ["ooo", 123, 10.1]

// 声明空数组
let arr = []
print(arr)

// 声明数组[存放任何类型的数据]
var b : Bool
b = true
let arr1 = ["hello", 100, 9.0, b]
print(arr1)

// 声明一个存放特定类型的数组
var arrStr = [String]()
// 添加元素
arrStr.append("hello")
arrStr.append("swift")
arrStr.count // 元素总数
arrStr.indexOf("hello") // 元素的下标

/*
定义数组时如果使用let就代表是一个不可变数组
如果使用var就代表是一个可变数组
*/
// 和OC数组的区别就是去掉前面的@符号
let arr = ["lnj", "lmj"]

// Siwft中的数组可以存储任意类型
let arr2 = ["lnj", 123, 10.1]

// 初始化
// Swift中, 如果一个变量没有初始化是不能被使用的

var arr4: [String]
// alloc initWithXXX == (XXX:)
// alloc init   == ()
arr4 = [String]()
arr4.append("lnj")

// 数组合并
var arr5 = ["lnj", "123"]
var arr6 = ["lmj"]

arr5 += arr6

// 注意点: 只有相同类型的数组才能进行合并
// Swift是强语言, 不同数据类型不能进行运算
var arr7 = ["zs", 123]
arr5 += arr7

字典

// 创建字典
// @{@"key": "value"};
// Swift中创建字典和创建数组一样, 用[]
// [String : NSObject] 类型是以后做iOS开发中最常见的一种格式
let dict = ["name": "lnj", "age": 30]


// 获取value
dict["name"]

// 遍历字典
for key in dict.keys
{
    print(dict[key])
}

// 利用元祖类型遍历字典, 会自动将字典中的key赋值给元祖中的第一个变量, 将value赋值给元祖中的第二个变量
// 注意: 第一个是key, 第二个value
for (kk, vv) in dict
{
    print(kk)
    print(vv)
}
// 新增key / value
// 如果对应的key在字典中没有, 那么就会新增
var dict2 = ["name": "lnj", "age": 30]
dict2["gender"] = "man"
dict2


// 更新key / value
// 如果对应的key在字典中有, 那么就会更新
dict2["name"] = "zs"
dict2

// 删除
dict2.removeValueForKey("name")
dict2

// 合并字典
var dict3 = ["score": 99]

for (key, value) in dict3
{
    dict2[key] = value
}
dict2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值