这里直接跳过了swift的环境安装,目前swift只能在苹果电脑上的xcode开发,所以你需要先习一台MAC,所有在学习上测试的代码需要使用playground来运行。
swift的变量、变量与数据类型和其它语言差不多,这里简单的过一下即可。但是swift运行的硬件都是基于苹果生态,目前新硬件全都是64位的,所以在某些数据处理上(int)会有一点细节上的不同,将会在下面的代码演示。
import UIKit //导入UIKit 框架用于playground
var myStr = "Hello, World!"//定义一个字符串类的变量(类型推导)
print(myStr)//在控制台打印出来这个变量(控制台用于调试显示结果的)
上面是代码就是swift的基本结构了,我们可以使用 import 语句来引入任何的 Objective-C 框架(或 C 库)到 Swift 程序中。例如 import cocoa 语句导入了使用了 Cocoa 库和API,我们可以在 Swift 程序中使用他们。
Cocoa 本身由 Objective-C 语言写成,Objective-C 又是 C 语言的严格超集,所以在 Swift 应用中我们可以很简单的混入 C 语言代码,甚至是 C++ 代码。
注释、定义变量等还有结束使用的分号(;)和GO、js语言差别不大,所以不做过多的赘述。下面代码演示swift的变量显示声明。
let `class` = "常量字符串"//class是swift的保留关键字,神奇的是我只需要加一个重音符号(`)也可以使用它做为变量名
let a = 1+ 2//会报错:error: consecutive statements on a line must be separated by ';'如果使用了运算符操作最后也是需要加上分号的(;)
let a= 1 + 2//会报错:error: prefix/postfix '=' is reserved等号与变量名要有一个空格
let a = 1 + 2; //swift等号与变量名之间需要有一个空号,这样的格式是标准的写法(没有最后的分号&+号2端没有空格也是OK的)。
var number: Int = 5 //使用显示声明一个初始值为5的Int类型(整形)变量
let num: Int = 6 //显示声明一个Int常量值为5,后面值不可改变
var num2: Int//只声明变量的类型,并不会像GO语言一样赋初值,如果访问或者打印num2将会报错
num2 = 0 //需要我们手动赋值
var str: String = "上面number的值为:(number),num的值为(num),(number+num2) * num = ((number+num2)*num)"//字符串里拼接变量需要使用(变量名),()表示占位符,可以访问一个值并将其放入新的字符串里(插值)
print(String) 打印:上面number的值为:5,num的值为6,(number+num2) * num = 30
批量定义变量与常量:
var a = 1,b = 2.2,c = 3,six = "六"//批量定义变量
let d = 4, e = 5.0,name = "张三" //批量定义常量
print(a,b,c,d,e,name,six)//1 2.2 3 4 5.0 张三 六
Swift中常用数据类型:首字母大写,Int、Float、Double、Bool、Character、String、Array、Dictionary、元组类型(Tuple)、可选类型Optional
指定数据类型:在常量/变量后面加上冒号(:)和类型名称,和Delphi很像。
不指定数据类型:let 、 var,系统自动推断数据类型,Swift严格要求变量在使用前必须进行初始化。
1、Int 类型:
一般来说,你不需要专门指定整数的长度。Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同:
几乎快淘汰的32位平台上,Int和Int32长度相同。
目前主流在64位平台上,Int和Int64长度相同。
除非你需要特定长度的整数,一般来说使用Int就够了。可以通过下面的代码访问到你的硬件Int最大和最小值:
print("当前硬件最大整数为:(Int.max),最小整数为:(Int.min)")
int里还有Int8、Int16、Int32、Int64及UInt相关的无符号整数。访问大小也是一样的。
2、Float、Double类型:
浮点数是有小数部分的数字,比如 3.14159,0.1 和 -273.15。
浮点类型比整数类型表示的范围更大,可以存储比 Int 类型更大或者更小的数字。Swift 提供了两种有符号浮点数类型:
Double精确度很高,至少有15位数字,而 Float 最少只有6位数字。选择哪个类型取决于你的代码需要处理的值的范围。
3、Bool布尔值:
swift里的布尔值只有true 和 false,不会像PHP会把0认为false,大于为的认为true.
4、单个字母Character:
类似GO语言里的byte类型(但Character不能存127以下的整数),所以我们可以使用typealias 来定义一个别名:
typealias Byte = Character
var myChar:Byte ="a"
注意:Character不能创建空串,也就是:var myChar:Character ="" 报错:error: cannot convert value of type 'String' to specified type 'Character'.
5、其它高级的数据类型:
后面会有专门的篇幅来介绍数组、字典等高级好用的类型,这里只讲一个Optional可选类型,定义可选的格式:var num :Optional 或者 var num :Int? //nil
常用格式:?,要紧跟类型:
var num : Int? //初始值为nil,使用?就是为了告诉编译器,这个值有可能为空nil
num = 100 //100
/*另一个定义optional类型的方法*/
var str: Optional = nil
str = "55mx.com"
Optional 是一个含有两种情况的枚举,None 和 Some(T),用来表示可能有或可能没有值。任何类型都可以明确声明为(或者隐式转换)可选类型。当声明一个可选类型的时候,要确保用括号给 ? 操作符一个合适的范围。
在确定Optional 有值的情况下,我们可能需要使用到强制解析,在变量后面加一个(!)即可。
//接上面代码
print(str)//打印:Optional("55mx.com")
//使用强制解析打印
print(str!)//打印:55mx.com
//利用??与Optional转换数据
var a = "10" //推导为字符串
var b = Double(a) ?? 0 //如果转换成功返回Double(为Optional类型),否则返回0
使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。
自动解析:
这样可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析。你可以在声明可选变量时使用感叹号(!)替换问号(?)。来访问可空的实例封装值,这是一个需要谨慎使用的方式,因为进无论是是否有值都会访问封装的合值,这个做为知识点了解一下,未来有使用到的机会再来复习!
6、String字符串类型
快速入门代码:
/* 定义字符串的几种方式 */
var strA = "网络人" //快速推导定义
var strB:String = "55mx.com" //标准定义
var strC = String("郭子")//实例化定义
var strD = String()//实例化
var strE:String //只定义不实例(访问变量会报错)
/* 字符串拼接 */
strA += strB + strC //字符串与字符串之间的拼接
var a:Character = "a" //定义一个单字符
strA.append(a) //在strA后面拼接Character类型的值
strA += String(100) //拼接转为字符串的整型
前面已多次使用了字符串类型,这里主要讲一下字符串自带的几个带用方法:
a、String.isEmpty 判断是否空字符串。
b、String.count 返回字符的长度
c、String.hasPrefix(prefix: String) //strA.hasPrefix("网络人") 返回bool值true
d、String.hasSuffix(suffix: String) 检查字符串是否拥有特定后缀。
e、Int(String) 转换字符串数字为整型。
f、String.utf8、String.utf16 可以通过 for code in unicodeString.utf8 遍历出字符串的utf编码。
g、+拼接字符、+=与数值运算类似在自己的后面累加、==判断字符是否一样、!=判读字串不一样、<逐一比较字符串。
和其它编程语言差不多吧~
1、算术运算符
+ 加号 20 + 10 结果为 30
− 减号 20 − 10 结果为 10
* 乘号 20 * 10 结果为 200
/ 除号 20 / 10 结果为 2
% 取余 20 % 10 结果为 0
2、比较运算符
== 等于 (20 == 10) 为 false。
!= 不等于 (20 != 10) 为 true。
> 大于 (10 > 20) 为 false。
< 小于 (20 < 10) 为 true。
>= 大于等于 (20 >= 10) 为 false。
<= 小于等于 (10 <= 20) 为 true。
3、逻辑运算符
&& 逻辑与。|| 逻辑或。 ! 逻辑非。
4、其它运算符:
= 简单的赋值运算 var a = 1
+= 相加后再赋值 a += 1 (a = a + 1)
-= 相减后再赋值 a -= 1 (a = a - 1)
*= 相乘后再赋值 a *= 1 (a = a * 1)
/= 相除后再赋值 a /= 1 (a = a / 1)
%= 求余后再赋值 a %= 1 (a = a % 1)
还有一些位移的这里就不写了,因为我不会用....平时开发也用得不多。以后仔细研究一下吧。。。
5、swift特有的区间运算符:
a.闭区间运算符:1...5 区间值为 1, 2, 3, 4 和 5
b.半开区间运算符:1..< 5 区间值为 1, 2, 3, 和 4(不包括5)
for i int 1...10{
print("(i)+(i)=(i+i)")
}
//打印:1+1=2、2+2=4、3+3=6...10+10=20
和常用编程语言不一样的是i=0;i<=10;i++简写为1...10了。
6、三元运算符: bool? 执行A : 执行B,语法与其它程序一样。
7、优先级与其它程序也是类似的,先乘除再加减括号里的先计算。
与声明有关的关键字
class | deinit | enum | extension |
func | import | init | internal |
let | operator | private | protocol |
public | static | struct | subscript |
typealias | var |
与语句有关的关键字
break | case | continue | default |
do | else | fallthrough | for |
if | in | return | switch |
where | while |
表达式和类型关键字
as | dynamicType | false | is |
nil | self | Self | super |
true | _COLUMN_ | _FILE_ | _FUNCTION_ |
_LINE_ |
在特定上下文中使用的关键字
associativity | convenience | dynamic | didSet |
final | get | infix | inout |
lazy | left | mutating | none |
nonmutating | optional | override | postfix |
precedence | prefix | Protocol | required |
right | set | Type | unowned |
weak | willSet |
除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/99
《【基础篇】1、常量、变量运算符与数据类型》的网友评论(0)