Swift之基础学习一

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OSiOS平台,用于搭建基于苹果平台的应用程序。2015年的WWDC开发者大会上,苹果公司推出了Swift2.0版本,并且Swfit完全开源。自从Swift发布以来,在http://www.tiobe.com中的排行一直处于上升的状态。swift的使用也更加广泛,越来越多的开发人员,尝试使用swift进行开发。

这里只进行swift的一些基础语法的介绍,

//MARK: - 定义常量变量和变量类型的隐式转换(常量使用let修饰,变量使用var修饰)

 1 //MARK: - 定义常量变量和变量类型的隐式转换(常量使用let修饰,变量使用var修饰)
 2 let name1 : String = "jackss" //定义String类型的常量
 3 var name2 : String = "jackss" //定义String类型的变量
 4 let name = "jack"//或者var name = "jack" 如果没有类型修饰符,它会隐式转换(根据后面的类型自动识别name为String类型)
 5 let age : Int = 18//如果定义常量最好给出初始值,定义变量可以不给初始值
 6 var age1 : Int? //表示age1的类型为可选类型,其值可以为空
 7 var cha : Character = "A"//定义字符类型的变量
 8 //print(cha)
 9 //定义一个bool类型的变量___在swift中bool类型的变量只有true或者false
10 var flag1 : Bool = true
11 var flag2 : Bool = true

//MARK: - 字符串String

 1 //1.创建空的字符串
 2 var str_empty = ""
 3 var str1_empty = String()
 4 //2.判断一个字符串是否为空字符串
 5 if str_empty.isEmpty{
 6     print("str_empty is empty");
 7 }
 8 //3.字符串的拼接
 9 var str_url1 = "http://"
10 var str_url2 = "www.baidu.com"
11 let str_new_url = str_url1 + str_url2
12 print(str_new_url)//第一种打印方式
13 print("百度网址:\(str_new_url)\n")  // 第二种打印方式
14
15 //4.获取字符串的长度
16 var str1 : String = "abcdef"
17 //5.字符串的比较
18 var str2 = "zifuchuanyi"
19 var str3 = "zifuchuaner"
20 if str2 != str3 {
21     print("他俩不相等")
22 }

//MARK: - 数组

 1 //定义一个数组,Swift中数组中的 元素类型必须相同
 2 var nameArray = ["WWW", "eee", "ash", "skla"]
 3 var nameAray1 : Array<String> = ["yaqian", "danci", "heidehao"]
 4 print(nameAray1[2])
 5
 6 //向数组中添加元素
 7 var int_array = Array<Int>()
 8 int_array.append(520)
 9 int_array.append(123)
10 //print(int_array)
11
12 //使用运算符添加数组元素
13 int_array += [12]
14
15 //使用运算符添加多个数组元素
16 int_array += [13,14]
17
18 //插入元素到具体的位置
19 int_array.insert(22, atIndex: 1)
20
21 //移除某个元素
22 int_array.removeAtIndex(1)

//MARK: - 字典

1 //定义一个字典类型的变量
2 var dic : Dictionary<String,Int> = ["a":18, "b":19, "c":43, "d":89]
3 //定义空字典
4 var dic1 : Dictionary<String,Int> = [:]
5 var dic2 = Dictionary<String,Int>()
6 //往字典里添加键值对或者修改(若存在键值就是修改,若不存在就是添加)
7 dic["m"] = 50
8 //删除字典中的内容(根据键去删除)
9 dic.removeValueForKey("m")

//MARK: - 元组

 1 //定义一个元组
 2 //方法一:隐式转换
 3 let tuples = ("课程",["语文", "数学", "物理"])
 4 //方法二:显示初始化的方式
 5 let tuplesNew : (String, Array) = ("课程",["语文", "数学", "物理"])
 6 //取出元组中的值
 7 //第一种方式:直接把元组赋值给另外一个常量,根据相关标记进行取值
 8 let tuplesNew1 : (classroom:String,course:Array) = tuplesNew
 9 var classInfo = tuplesNew1.classroom + tuplesNew1.course[0]
10 print(classInfo)
11 //第二种方式:直接根据下标取值
12 var classInfoNew = tuplesNew.1[2] + tuplesNew.1[0]
13 print(classInfoNew)

//MARK: - 循环:循环方式很多这里只介绍较简单的几种

 1 //第一种形式
 2 for var i = 1;i < 10;i++ {
 3     print(i)//不包括10
 4 }
 5 //第二种形式
 6 for number in 1..<10 {
 7     print(number)//不包括10
 8 }
 9 //第三种形式
10 for number in 1...10
11 {
12     print(number)//包括10
13 }
14 repeat {//先执行一次循环体,再进行相关的循环
15 //print("love")
16 }while 1 < 0

//MARK: - 遍历:遍历数组跟OC类似,下面只介绍一下遍历字典

1 var animalDic = ["dog" : "??", "pig" : "??","fish" : "??","dragon" : "??","monkey" : "??",]
2 for (key, value) in animalDic {
3     print("key = \(key), value = \(value)")
4 }

//MARK: - 分支结构 (if结构和switch格式)

 1 //if形式的
 2 let flag4 = true
 3 if flag4 == true {
 4     //print("我是真的真的")
 5
 6 }else {
 7     //print("这是假的")
 8 }
 9
10 //switch形式使用fallthrough实现贯穿每种可能(全部打印)
11 let value = 0
12 switch value {
13 case 0:
14     print("0")
15     fallthrough
16 case 10:
17     print("10")
18     fallthrough
19 default:
20     print("other")
21 }
22 //特点二:case之后可以使用一个范围(默认后面加了break)
23 switch value {
24 case 0...10:
25     print("输出0-10之间的数值")
26 case 10..<100:
27     print("输出10-100之间的数值")
28 default:
29     print("other")
30 }
31 //特点3:case后可以使用let和var修饰的常量或者变量;where是满足某种条件
32 switch value {
33 case var i where value>=0 && value < 6:
34     i = 99
35     print(i)
36 default:
37     print("other")
38 }
39
40 //特点4:case后还可以匹配一个元组
41 let point = (10,10)
42 switch point {
43 case (10,0):
44     print("1111111")
45 case (10,8):
46     print("22222")
47 case (_,10)://_代表可以忽略某个元素
48     print("3333333")
49 case (10,10)://
50     print("4444444")
51 default:
52     print("other")
53
54 }

//MARK: - 枚举(enum)

 1 //枚举原始类型为int类型
 2 enum Direction:Int {
 3
 4   case east = 0
 5     case south = 1
 6     case west = 2
 7     case north = 3
 8 }
 9 print(Direction.east.rawValue)//rawValue就是找到相对应枚举的原始值
10 //根据原始值获取枚举的类型
11 print(Direction(rawValue: 2))

//MARK: - 函数

 1 //1.无参无返
 2 func function1() -> Void {
 3     print("无返回值,无参数")
 4 }
 5
 6 function1()
 7
 8 //2.无返回值,有参数
 9 func function2(name str:String) -> Void {
10     print(str)
11 }
12
13 function2(name: "haode")
14 //3.有返回值,无参数
15 func function3() -> String {
16
17     return "炸天"
18 }
19 print(function3())
20
21 //4.有返回值,有参数
22 func function4(num1:Int,num2:Int) -> Int {
23     return num1 + num2
24 }
25 print(function4(5, num2: 6))
26
27 //函数的返回值为元组类型的
28 func function5(num1:Int,num2:Int) -> (Int,Int,Int) {
29
30     return (num1 + num2, num1 - num2,num1 * num2)
31 }
32 print(function5(2, num2: 1))
 1 //外部参数和内部参数//first和second是外部参数,在函数调用的时候,会显示出来这两个名称
 2 //one和two是内部参数,内部函数在函数内部使用
 3 //默认情况下,第一个外部参数在调用的时候不显示,其余的均显示,而且和你定义的名字一样
 4 func function6(first one:Int,second two:Int) {
 5     print((one,two))
 6 }
 7
 8 function6(first: 12, second: 2)
 9
10 //如果都不想显示外部参数:  "_"的作用是忽略(注意空格)
11 func function7(one:Int,_ two:Int) {
12     print("忽略外部参数")
13 }
14
15 function7(8, 9)
16
17 //函数的嵌套
18 func test1() {
19     func test2() {
20         func test3(){
21             print("今天天气好晴朗处处好风光")
22         }
23         test3()
24     }
25     test2()
26     print("今天天气不是很好")
27 }
28
29 //inout修饰的参数
30 func test(inout name:String){
31     name = "wangwang"
32     print(name)
33 }
34
35 var myName = "yuanyuan"
36 print("myName:\(myName)")
37 test(&myName)
38 print(myName)
时间: 2024-08-10 03:53:09

Swift之基础学习一的相关文章

Swift之基础学习二

//MARK: - ?(可选类型)和!(强制解包)的区别 var number : Int?var number1 = number!//程序会崩溃(如果对值为nil的变量进行强制解包,会造成程序崩溃) //MARK: - 结构体 1 //1.声明一个结构体 2 struct Rect { 3 //声明结构体变量的属性(存储属性) 4 var x : Float 5 var y : Float 6 var width : Float 7 var heighy : Float 8 //声明结构体属

swift学习_xcode基础学习

android L已经在开发大会上公布了, 技术得跟上时代的潮流, 一心想在移动互联网中发展,只好努力学习 html+ js  ,  oc ! 服务器运维我就不写了,就算是自己的生活记录.android 说真心话, 一直想写,结果发现自己很喜欢写得连续点,就像仙剑一样, 应该是能让人回味的那种,文笔不好 , 就先这些基础开始练习吧. 发呆中..... 上一个教程中 xcode6  安装后,打开xcode开始界面,我突然发现 get start playground , 一直在犹豫他是神马....

零基础学习swift

swift基础学习篇(一) swift语言是2014年苹果公司于WWDC(苹果开发者大会)发布的新技术:用于编写iOS和OS X应用,支持代码预览:Chris Lattner从2010年7月开始主导开发swift编程语言: 环境准备 语言特点 语法基础 项目实战 环境准备 运用xcode 只需将语言设置为swift: 语言特点 swift的特性 * 1.运行时特性 * - 速度是python的3.9倍; (OC 速度是python的2.6倍) - 拥有自己的自动垃圾回收机制. - 与OC共用运行

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

初探swift语言的学习笔记八(保留了许多OC的实现)

尽管swift作为一门新语言,但还保留了许多OC的机制,使得swift和OC更好的融合在一起.如果没有OC基础的先GOOGLE一下. 如:KVO,DELEGATE,NOTIFICATION. 详见DEMO. import Foundation @objc // 需要打开objc标识,否则@optional编译出错 protocol kvoDemoDelegate { func willDoSomething() @optional func didDoSomething() //可选实现, }

零基础学习openstack【完整中级篇】及openstack资源汇总

1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事,内容整合来自: 零基础学习openstack(上)[中级篇] 零基础学习openstack(下)[中级篇] 是在 零基础学习openstack[初级篇]基础上的一个继续: 初级篇,我们主要是有这么一个概念,openstack的组成openstack由哪些部分来组成: Identity(代号为“Ke

Swift 2.0学习笔记——我的第一行Swift代码

Swift 2.0学习笔记--我的第一行Swift代码 当第一次看到下面代码时我石化了,这些代码是什么东东?单词拼出来的? import Foundation var str = "Hello World" print(str) 晕晕.好吧,低头继续往下看,哦明白了 第一句:import Foundation 表示引入Foundation框架. 什么是Foundation框架? Foundation是OS X和iOS应用程序开发的基础框架,它包括了一些基本的类,如数字.字符串.数组.字

蓝鸥零基础学习HTML5—html+css基础

蓝鸥零基础学习HTML5-html+css基础 一.课程目标 1.了解前端开发职位:2.掌握常用标签以及语义及用法:3.掌握常用css的特性,掌握基础布局技巧:4.掌握整站规划概念. 二.适用人群 零基础积极学习html5者 三.课程简介 本课程主要讲解了 html+css的基础知识,包括html模板.标签.css基础样式.布局.表格表单.整站等等,是进行前端开发的基础.Html+css是前端开发的基础,大部分前端开发工程都需要从html+css布局开始,html+css的基础非常重要,是前端开

HTML&CSS基础学习笔记8-预格式文本

<pre>标签的主要作用是预格式化文本.被包围在 pre 标签中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre>标签的一个常见应用就是用来表示计算机的源代码.当然你也可以在你需要在网页中预显示格式时使用它. 会使你的文本换行的标签(例如<h>.<p>)绝不能包含在 <pre> 所定义的块里.尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的. 更多学习内容,就在码芽网http://www.