swift基本语法2

目录:

1、变量和常量

2、基本数据类型及其转换

        2.1 Int类型

        2.2 浮点类型

        2.3 布尔类型

        2.4 字符和字符串类型

        2.5 元组类型

        2.6 可选类型

        2.7 数值可读性

        2.8 类型别名

        2.9 基本数据类型之间的转换

3、运算符和表达式

        3.1 运算符简介

        3.2 区间运算符

        3.3 占位表达式

4、控制流

        4.1 for循环

        4.2 while循环

        4.3 if、swich条件

        4.4 控制转移语句

5、枚举和结构体

6、宏定义

7、代码规范

一、变量和常量

import Foundation

//定义一个字符串常量
let obj_name_1 = "swift language";
//定义一个常量 声明为string类型 并初始化值
let obj_name_let : String = "work work";
//定义一个int类型的age
var age = 2;
//定义obj_name_2、obj_name_3 变量并复制,类型为string
var obj_name_2 = "java",obj_name_3 = "c++";
//定义一个int类型的obj_4、定义一个string 类型的obj_5。并初始化
var obj_4 = 1,obj_5 :String = "hello";
//swift 支持emoji输出
let obj_name_4 = "";
//定义一个int类型的integer_type_1
var integer_type_1 = 0;
//定义一个int16位的变量并赋值
var integer_type_2 : Int16 = 100;
//定义一个int32位的变量并赋值
var integer_type_3 : Int32 = 200;
//仅仅声明一个str变量为string类型的
var str : String;

总结:swift支持emoji表情输出,已经被初始化的值便被赋予了变量类型,变量被指定过值,便有了类型,后面则不可以被指定其它类型的值。重要:常量必须被初始化

二、基本数据类型及其转换

    2.1 Int类型

Int分为:Int8、Int16、Int32、Int64、和UInt8、UInt16、UInt32、UInt64

println("----min最小取值范围---");
println(Int.min);
println(Int16.min);
println(Int32.min);
println("----min最小取值范围---");
println("----max最大取值范围---");
println(Int.max)
println(Int16.max);
println(Int32.max);
println("----max最大取值范围---");

输出结果:
----min最小取值范围---
-9223372036854775808
-32768
-2147483648
----min最小取值范围---
----max最大取值范围---
9223372036854775807
32767
2147483647
----max最大取值范围---
println(UInt8.max);
println(UInt16.max);
println(UInt32.max);
println(UInt64.max);
println(UInt8.min);
println(UInt16.min);
println(UInt32.min);
println(UInt64.min);

255
65535
4294967295
18446744073709551615
0
0
0
0

注意:在32或者64位电脑上,使用Int的数据精度时根据计算机而定。64位电脑Int的字节长度和Int64一样,32位电脑Int的字节长度和Int32一样。UInt类型也同理。

    2.2 浮点类型

                浮点类型分为double和float、double表示64位浮点数,float则表示32位浮点数。嗯,double能存储更大或者要求精度很高的数据。

let n1 : Float = 3.14555555555555;
let n2 : Double = 3.1415926122312;
println(n1);
println(n2);

//输出结果
3.14556
3.1415926122312

可以看到、double输出的精度更加准确些。


    2.3 布尔类型

                布尔类型只有两个值,true,false。经常用于条件语句判断

let logical_1 : Bool = true;
let logical_2 = false;

println(logical_1 && logical_2);

//噢,输出结果时false。打上去吧。

    2.4 字符和字符串类型

               字符类型的值只能存储一个字符,unicode字符,比如"我"字、则对应的unicode字符为"\u6211"、字母"a"则对应"\u0061"。

var char_type_1 : Character = "/*emoji字符*/";
var char_type_2 : Character = "我";
var char_type_3 : Character = "Z";

println(char_type_1);
println(char_type_2);
println(char_type_3);

//输出结果为:
/*emoji字符*/
我
Z

上面的emoji,是两个unicode字符,真是日了狗了(Character字符类型只支持一个表情符号,不支持两个。表情符号占二个unicode,也是可以输出的)

var str_1 :String = "Hello World";
var str_2 :String = String(6);
println(str_1);
println(str_2);

//输出结果为:
Hello World
99

     2.5 元组类型

                元组类型是swift的一种新数据类型,英文名字叫tuples。大概和结构体,数组,输出格式大概和json差不多。它可以包含很多种数据类型,将多个值合为单个值。(这点和javabean差不多),定义、使用还是很简单的。

var people = (name:"shaoyongyang",age:22,sex:"a little boy");
println(people);

输出结果为:
(shaoyongyang, 22, a little boy)

注意:是小括号,不是大括号,也不是中括号。

    2.6 可选类型

嗯,可选数据类型,这点不得不从swift语言说起:从前,swift语言规定“你们这些码农,在使用没被初始化的变量的时候,必须要给它赋值!”,所以现在在使用未被初始化变量的时候就会报错。后来人们觉得这个不行啊,很不方便开发,于是就有了可选类型。这个典故是小编辑告诉我的。

var str_1 : String;
println(str_1)
//这样直接使用会报错,编译器过不去。为什么?因为小小编辑说:“它没被初始化”
var str_1 : String?;
println(str_1)

var int_1 : Int?;
println(int_1);

//可选类型就是加入"?"号
var int_1 : Int?;
int_1 = 2;
println(int_1);
println((int_1!.hashValue));

输出结果为:
nil
Optional(2)
2

nil代表null的意思,也是空值。(swift的基本数据类型更像对象多一些,但是没有面向对象强大,各有优劣吧)

有关这点大家可以点击这个链接,进一步扩展:我是链接

嗯,本身我以为可选数据类型是类型本身可改变。就像javascript 的var包含int、string、float一样,真是日了狗了。理解错了。

数据类型在一开始的时候就定义好了

var int_1 : Int?;
//其实就是定义了一个int类型的变量,只是可以不被初始化。
//如果需要正常的取数据,则需要下面这种写法
println((int_1!.hashValue));

再附上一个例子:

var numStr:String = "444";
//?号是允许变量没有值
var num:Int? = numStr.toInt();

println(num);
println(num?.hashValue);
//!号是,确定可选类型变量一定有值
println(num!.hashValue)

       

    2.7 数值可读性

                嗯,有关数值可读性,无非就是十亿,百亿,千亿。可能小小编辑有这么多钱,大家可以去打劫她。大概代码就像下面这样。 

var value_1 = 10_000_000_000;

var value_2 = 1_00000_00000_0000;

println(value_1);
println(value_2);

可读性是不是好了很多?swift只能用下滑线,别想太多。


    2.8 类型别名

                类型别名是个很有意思的东西,比如下面的代码:

typealias oschina = Int32;
typealias oschinaFloat = Float32;

var age : oschina = 44;
var size : oschinaFloat = 2.888;

println(age);
println(size);

输出结果为:
44
2.888

就是起个别名,似乎也没啥用,我记得c++里面也有,不过java似乎不需要..不需要...

    2.9 基本数据类型之间的转换

                上码!

var j : Int = 3;
//把Int 转为Float
println(Float(j));
//把Int 转为Double
println(Double(j));
//把Int 转为String
println(String(j));

var str : String = "44";
var s1 = str as NSString;
//把String 转为int
println(s1.intValue);
//把string 转为double
println(s1.doubleValue);
//把String 转为float
println(s1.floatValue);

var float_type : Float = 2.8888;
var double_type : Double = 4.8888;
//把Double 转为String
var str1:NSString =  NSString(format: "%.04f", double_type);
//把float  转为string
var str2:NSString =  NSString(format: "%.04f", float_type);

println(str1);
println(str2);

//把String 转为float和 double
var str3 : String = "8.8888";
var f3 = (str3 as NSString).floatValue;
var f4 = ("222.22" as NSString).floatValue;
println(f3);
println(f4);

都在这了,要的尽管拿去。

三、运算符和表达式

            3.1 运算符简介

                运算符分为一元、二元、三元

                一元运算符指的是对单一操作的对象,比如(-x)、还分为前置和后置之分。前置则紧排操作对象,比如:!y,后置则跟操作对象之后,比如i++;

                二元运算符是操作两个对象,比如1+2、3+5、a+b。受运算符操作的左右对象称为操作数;

                三元运算符操作三个操作对象,比如:a?b:c、也叫三目运算;

    一元符号,看下面的代码:

var t : Int = 3
println(-t)

输出结果为:
-3

相反、一元正号也是同理。

3.2 区间运算符:

for index in 1...3 {
    println(index);
}

for index1 in 1..<3 {
    println(index1);
}

输出结果为:
1
2
3
1
2

第一个for是区间运算,第二个是半闭区间(不包含最后一个值)

    3.3 占位表达式

var xt :Int?;
(xt,_) = (20,30)

println(xt!.hashValue);

上面的代码20赋值给了xt变量,30则被忽略了。

四、控制流

    4.1 for循环

for index in 1...2 {
    println(index);
}

for var t=1;t<=2;t++ {
    println(t);
}

嗯,大概就跟上面的demo code、差不多。

       4.2 while循环

var count = 0;

while(count<10) {
    println(count);
    count++;
}

do
{
    println(count);
    count++;
}
while (count <= 11)

       4.3 if、swich条件

var bl :Bool = true;
var bt :Bool = false && false;

if (bl || bt) {
    println("1>2");
}
else if(1<2) {
    println("1<2");
}
else {
    println(2);
}

var num = 0;
switch num {
    case 0: println(0);
    case 1: println(1);
    case 2: println(2);
    default: println("default");
}

       4.4 控制转移语句

var num = 44;

for var t=0;t<10;t++ {
    
    if(t==8) {
        break;
    } else if(t==6){
        continue;
    } else {
        println(t);
    }
}

switch num {
case 44,45,46: println("case one");fallthrough;
//fallthrough的意思是匹配到这个case之后,继续匹配case。
case 44:println("case two");
default:println("ok");
}

输出结果为:
case one
case two

五、枚举和结构体

enum Week {
    case Monday;
    case Tuesday;
    case Wednesday;
    case Thursday;
    case Friday;
    case Saturday;
    case Sunday;
}

enum People {
    case boy,gril;
}
println(People.boy.hashValue);

枚举定义了一个通用类型相关的值,枚举也可以包含方法,比如下面的代码:

enum People {
    case boy,gril;
    
    func sayHi(){
        println("hi");
    }
}

var t : People = People.boy;
t.sayHi();

接下来结构体呢,它和class有很多地方一样,方法的构造器、结构体和类的区别在于结构体是传值、类是传引用

struct People {
    var name :String;
    var age : Int;
    var sex : Int;
    
    func sayHi() ->Int {
        return 1;
    }
}

var p1 :People = People(name:"shaoyongyang", age :22,sex:0);

println(p1.name);
println(p1.sayHi());

比较简单,没啥要注意说明的。

六、宏定义

    swift并没有加入宏,但swift中类似宏定义,可以单独创建一个类,比如:Contans.swift,再此类中声明

import Foundation

class Contans {
    let DEV_VERSION:String = "IPHONE7";
}

//main.swift引入
var c : Contans = Contans();
println(c.DEV_VERSION);

swift支持条件编译

#if true||false
    println(11)
#elseif true||false
    println(2);
#elseif true && false
    println(3)
#endif

输出结果为:
11

七、代码规范

1、间隔缩进,代码缩进一个tap距离

2、方法命名,首字母小写,之后每个单词都要大写,见名要知道意思。

3、变量命名,首字母小写,之后每个单词都要大写,名字要有足够的说明性。

4、枚举类型,首字母大写,之后每个单词首字母大写。

5、注释文件包含文件头,要有说明文件名,创建时间,变更纪录。

6、语句嵌套层次不得超过3层,每个文件最好代码500行内,不得超过1000行、超过之后要考虑重构

时间: 2024-10-24 03:29:32

swift基本语法2的相关文章

Swift 基础语法

一.变量和常量 定义 let 定义常量,一经赋值不允许再修改 var 定义变量,赋值之后仍然可以修改 //: # 常量 //: 定义常量并且直接设置数值 let x = 20 //: 常量数值一经设置,不能修改,以下代码会报错 // x = 30 //: 使用 `: 类型`,仅仅只定义类型,而没有设置数值 let x1: Int //: 常量有一次设置数值的机会,以下代码没有问题,因为 x1 还没有被设置数值 x1 = 30 //: 一旦设置了数值之后,则不能再次修改,以下代码会报错,因为 x1

swift 基本语法---01

Swift是苹果公司于2014年WWDC发布的一款全新的编程语言,这门语言可以用来开发ios,Mac的应用程序,苹果从2010年开始设计Swift语言,耗时4年. Swift的语法内混合了JavaScript.Objective-C.Python这三门语言,语法简单,代码简洁,而且在开发ios和Mac的应用程序时可以和Objective-C混用.Swift拥有了脚本语言语法简单和易于编写和测试的优点,同时也有Objective-C能够更好的利用设备性能的强大之处. Swift的一些简单语法: "

Swift基础语法(常量变量、数据类型、元组、可选、断言等)

Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的. Swift 的类型是在 C 和 Objective-C 的基础上提出的,Int是整型:Double和Float是浮点型:Bool是布尔型:String是字符串.Swift 还有两个有用的集合类型,Array和Dictionary,请参考集合类型. 就像 C 语言一样,Swift 使用变量来进行存储并通过变量名来关联值.在 Sw

Swift常用语法示例代码(一)

此篇文章整理自我以前学习Swift时的一些练习代码,其存在的意义多是可以通过看示例代码更快地回忆Swift的主要语法. 如果你想系统学习Swift或者是Swift的初学者请绕路,感谢Github上The Swift Programming Language开源翻译的中文版,感谢极客学院wiki提供的PDF版本. 代码和PDF版本上传至Github,有兴趣的可以下载下来试试. SwiftTour Base var str = "Hello, World!" print(str) // 变

iOS开发——语法篇&amp;swift经典语法总结

swift经典语法总结 1:函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返回值可以不写->(),返回值只需要写返回类型,如果写了返回名称,可以在函数调用后的值用点语法访问 1.3 在参数名称前可以加上外部参数名,调用的时候就可以带上它了,如果外部参数名和内部参数名相同则可以直接在内部参数名前加#即可 1.4 如果跟参数设置一个默认值,则swift会自动

swift 有些语法还是不支持。

<pre name="code" class="html">"func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool { for item in list { if condition(item) { return true } } return false } func lessThanTen(number: Int) -> Bool { return

【swift_1】swift基本语法及事例Demo

语法类的文档网上比较多,我这里参考:Swift基本语法 事例Demo:链接:http://download.csdn.net/download/riven_wn/9401928 语法须知 2个不需要 不需要编写main函数:全局作用域中的代码会被自动当做程序的入口点(从上往下执行) 不需要在每一条语句后面加上分号 let radius =10 你喜欢的话,也可以加上   let radius =10; 有一种情况必须加分号:同一行代码上有多条语句时 let radius =10;   let r

Swift高级语法学习总结(转)

Swift高级语法学习总结 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如果有参数和返回值直接写在两个括号里就可以了 1.2 参数需要指明类型,而如果没有返回值可以不写->(),返回值只需要写返回类型,如果写了返回名称,可以在函数调用后的值用点语法访问 1.3 在参数名称前可以加上外部参数名,调用的时候就可以带上它了,如果外部参数名和内部参数名相同则可以直接在内部参数名前加#即可 1.4 如果跟参数设置一个默认值,则swift会

Swift基础语法学习总结(转)

Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型,几乎所有类型都是可打印的. 1.3) swift在语句后面加分号与否都是正确的,但是swift偏好的风格是不在结尾处加分号的.如果有多个语句,必须用分号隔开. 1.4) 在一个数字中庸下划线(_)会被忽视,方便认出大数值的的数字,也可以在前面补零. 1.5) swift不允许在不同种类型间做加减乘

Swift基本语法

简介 1.什么是Swift Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为"雨燕" 跟Objective-C一样,可以用于开发iOS.Mac应用程序 苹果从2010年7月开始设计Swift语言,耗时4年打造 2.Swift的语法特点 从它的语法中能看到Objective-C.JavaScript.Python等语言的影子 语法简单.代码简洁.使用方便 可与Objective-C混合使用(相互调用) 3.为什么要设计Swift语言 让应用开