Swift基础语法

一:Swift 中的常量和变量

//1:分号有没有都可以
//2:类型推导,根据右边表达式来推导左边类型
let product_constant = "iphone"//常量
var product_var = "ipad"//变量
var id = 30;

print(id)

//3:多个变量
var x1 = 30, x2="abc"
//4:固定类型变量
var x3:Int = 31
//5:支持中文
var 刘爽 = "hello my name"
//6:支持特殊符号
var [笑脸]="你好吗?"

//7:输出多个变量
print("x1 = \(x1),x2 = \(x2),x3 = \(x3),中文 = \(刘爽),特殊字符 = \([笑脸])")

总结:
1:如果一个值在之后的代码中不会再变化,应该用let关键词将它声明为常量。变量只用来存储会更改的值。
2: Swift中可以使用几乎任何字符来作为常量和变量名,包括Unicode

二:Swift 中的数据类型

/**
数值类型:布尔类型
数值类型:整型和浮点型

//整型
整型:有符号   无符号
有符号: Int Int8 Int16 Int32 Int64
32位系统中:Int = Int32
64位系统中:Int = Int64

无符号:UInt UInt8 UInt16 UInt32 UInt64
32位系统中:UInt = UInt32
64位系统中:UInt = UInt64
*/

let minIntValue = Int.min
let maxIntValue = Int.max

let minInt8Value = Int8.min;//类推


print("minIntValue = \(minIntValue),maxIntValue = \(maxIntValue),minInt8Value = \(minInt8Value)")

/**
浮点类型 :float double(默认)
*/

//变量给定值,要注意其取值范围
let value1 = 123.4//double(默认)
let value2:Float = 123.4//指定类型
let value3 = 123//int(默认)
let value4:Int8 = 127 //指定类型

/**数制*/
let decimalInt = 20
let binaryInt = 0b1100  //12
let octalInt  = 0o21    //17
let hexInt    = 0x11    //17
print("decimalInt = \(decimalInt),binaryInt = \(binaryInt),octalInt = \(octalInt),hexInt = \(hexInt)")

/**可读性*/
let value5 = 12_000_000
let value6 = 1_000_000.000_000_1
print("value5 = \(value5),value6 = \(value6)")

/**布尔型*/
let bool_value = true //true或者false 不能是1或者0
if(bool_value){

}

/**类型别名*/
typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min//maxAmplitudeFound初值是0

总结:实际编程中很少需要使用类型注解,定义常量或者变量的时候Swift已经根据初始化的值确定了类型信息。(类型推倒),Swift几乎都可以隐式的确定变量或常量的类型,详见: Type Safety and Type Inference。如果初始化值没有被给出,所以更好的办法是指定变量的类型而不是让Swift隐式推导类型。

三:Swift 中的字符串

/**
1:字符串类型String
2:字符串可以包含的特殊字符
3:字符串初始化
4:比较字符串
5:链接字符串
6:字符串大小写转化
*/

//1:字符串类型String
let strValue:String = "abc"

//2:字符串可以包含的特殊字符
/**
使用转意字符
\0 (null空字符)
\\ (反斜杠)
\t (制表符)
\n (换行符)
\r (回车符)
\" (双引号)
\' (单引号)
\xnn (字节Unicode)  nn表示十六进制
\unnnn (双字节Unicode)
\Unnnnnnnn(四字节Unicode)
*/

let strValue1 = "\"今天是个\'好日子\'\""
print(strValue1)

/**
let strValue2="\x41"
print(strValue2)

let strValue3="\u2600"
print(strValue3)
*/

//3:字符串初始化
var emptyString1 = ""
var emptyString2 = String()

var emptyString3 = "abc"
var emptyString4 = String("abc")

//4:比较字符串
if emptyString3 == emptyString4
{
print("emptyString3 equal emptyString4")
}

//5:链接字符串
let str1 = "我是中国人\n"
let str2 = "我爱中国人\n"

var str = str1 + str2
var str3 = "hello"

str += str3;
print(str)

//6:字符串大小写转化
let lowercaseStr = "qwertyuiop"
let uppercaseStr = lowercaseStr.uppercaseString
print(uppercaseStr);
print(uppercaseStr.lowercaseString)

数值字面量:
这里写图片描述

下面的所有整数字面量的十进制值都是 17 :

let decimalInteger = 17
let binaryInteger = 0b10001// 二进制的17
let octalInteger = 0o21 // 八进制的17 
let hexadecimalInteger = 0x11// 十六进制的17

错误描述: 如下代码运行时报错信息如图

let strValue2="\x41"
print(strValue2)

这里写图片描述
大致意思是数值字面量转换有问题吧,找了一下也没有找到好的答案,有懂解决方案的大神请留言,感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值