Swift初级(一),课堂代码

2016-03-15  本文已影响74人  bu再等

//  main.swift

//  Swift初级(一)

//  Created by  on 15/11/2.

//  Copyright © 2015年  All rights reserved.

//当需要导入类库的时候,使用import 类库名,不用再加<>或者""

//

import Foundation

print("Hello, World!")//在swift中,使用print输出

//1.定义常量(let)和变量(var)

//定义常量

let myGender = "男"//commond+ctrl+空格可添加表情

//myGender = "女"  //因为myGender是用let修饰的

//定义变量

var carName = "BMW"

carName = "Audi"  //因为carName是用var修饰的

//Swift定义变量或者常量的时候,需要标识出变量或者常量的类型,如果不标识,会根据初始值自动的推断。

let name = "Jack"  //会自动推断为String,由后面的值来决定name的类型

//let name:String = "Jack"//由前面的类型String,决定后面赋什么类型的值.即后面值的类型要和String一致

let age:Int = 3  //注意:如果是使用let修饰,必须赋初值;如果是使用var修饰,可以不赋初值

var age1:Int? //'?'表示当前age1是可选类型,其值可以为空

print(age1)

//定义一个字符类型的变量

var char:Character = "A" //此时char就是一个字符,切记其值也是用""的,只能放一个字符

//定义一个Bool类型的变量(值只有true,flase)

var flag:Bool = true

/***** 字符串String******/

//(1).创建一个空串变量

var str_empty = ""

var str1_empty = String()

//(2).通过字符串对象的isEmpty方法判断是否为空

if str_empty.isEmpty{  

//if 后面的判断条件(表达式,方法..)的返回值,必须是Bool类型的    

print("str_empty is empty!!")

}

//(3).拼接字符串

var str_url = "http://"var

str = "www.lanou3g.com"

let urlString = str_url+strprint(urlString)

print("蓝鸥官网:\\(urlString)\\n")//插入式取值 \\(变量名)

//(4).获取字符串长度

var str1:String = "abc"

print(str1.characters.count)

//(5).字符串插值

let mul = 4

let content = "\\(mul)*2.5 = \\(Float(mul)*2.5)"

print(content)

//(6).字符串比较

let str2 = "xiaoxiao"

let str3 = "lanou"

if str2 != str3{  // ==    

print("两个字符串不相等!!!")

}

/***********数组(Array)********/

//Swift的数组里面存储的所有数据 都必须是同一类型的。如果需要使用不同类型的,可以使用OC的数组

//定义一个数组变量

var nameArray = ["张三","李四","王五"]

var nameArray1:Array= ["张三","李四","王五"

]let array = Array()  //定义一个字符串型空数组

var int_arr = [Int]() //定义一个整型空数组

//访问数组中某个元素

print("第二个元素\\(nameArray[1])")

print(nameArray[0])

//向数组中添加一个元素

var int_arr1 = [Int]()int_arr1.append(10)int_arr1.append(20)

// 使用运算符重载向数组中添加一个元素

int_arr += [1]// 使用运算符重载向数组中添加多个元素

int_arr += [1, 2, 3]print(int_arr1)//在数组中的某个位置,插入一个元素

int_arr1.insert(30, atIndex: 0)print(int_arr1)//移除数组中某个位置上的元素

int_arr1.removeAtIndex(2)print(int_arr1)//移除数组中所有元素

int_arr1.removeAll()print(int_arr1)

/***********字典(Dictionary)*******/

//定义一个字典变量var dictionary:Dictionary= ["a":10,"b":20]//定义个空字典变量var dictionary1:Dictionary= [:]var dictionary2 = Dictionary()

//向字典中添加一个键值对

dictionary["c"] = 30

print(dictionary)

//修改字典中某个键值对的值

dictionary["a"] = 50

print(dictionary["a"])

//删除字典中的一个键值对

dictionary.removeValueForKey("a")

print(dictionary)

/***************元组*****************/

//定义一个元组变量

//方法一:直接初始化一个元组,通过隐式类型推断确定每一个元素的类型

let status = ("蓝鸥1班",["iOS","Html5"])

//方法二:显示的标识出元素的类型

let statusNews:(String, Array) = ("蓝鸥1班",["iOS","Html5"])

//取出元祖中的值的方法:

//方法一:直接赋值给常量,并通过使用标记名来获取对应的值

let statu:(classroom:String,course:Array) = status

var classInfo = statu.classroom + statu.course[0] + statu.course[1]

print(classInfo)

//方法二:直接通过下标获取元素的值

var classInfos = statu.0 + statu.1[0] + statu.1[1]

print(classInfos)

print(classInfos)

status

/*************循环********/

//extension

//第一种形式:

for var i = 1; i<10;i++

{

print(i)

}

//第二种形式:

for number in 1..<10{

print(number)

}

//第三种形式:

for number in 1...10{

print(number)

}

//while,repeat...while

var i = 5

while i > 0{

i--

print(i)

}

repeat{       //先执行循环体,再判断条件

print("repeat...while")

}while 1<0

//使用for循环遍历数组

var animalsArray = ["dog","cat","tiger","pig"]

for a in animalsArray

{

print(a)

}

//使用for循环遍历字典

var animalsArray1 = ["dog":"","pig":""]

for (key,value) in animalsArray1{

print("key = \\(key),value = \\(value)")

}

/********分支结构(if...else,switch...case)******/

//if结构

let flag1 = true

if flag1 == true

{

print("flag=\\(flag1)")

}else{

print("flag=\\(flag1)")

}

//switch...case

//特点1: switch中实现贯穿,使用关键字fallthrough

let value = 0

switch value{

case 0:

print("0")

fallthrough

case 10:

print("10")

fallthrough

default:

print("Other")

}

//特点②: case后面可以是一个范围

switch value{

case 0..<10:

print("范围是在0..<10,不包括10")

case 10...100:

print("范围是在10...100,包括100")

default :

print("Other")

}

//特点③: case后面可以定义一个变量(let,var修饰都可以),where后面是定义这个变量需要满足的条件

switch value {

case var i where value>=0 && value<10:

i = 20

print(i)

default:

print("Other")

}

//特点4: switch...case可以匹配一个元组

let point = (10,10)

switch point{

case (_,10):       // '_'代表忽略

print("case1") //默认带有break

case (10,0):

print("case2")

case (10,10):

print("case3")

default:

print("Other")

}

/*********枚举(enum)**********/

//原始类型是Int型的枚举

enum Direction:Int

{

case east = 0

case south = 1

case north = 2

case west  = 3

}

print(Direction.east.rawValue) //rawValue打印原始值

//原始类型是String型的枚举

enum Season:String{

case spring = "春天"

case summer = "夏天"

case winter = "冬天"

}

print(Season.summer.rawValue)

//Direction(rawValue:2)表示:通过原始值2,获取一个枚举成员,这个成员的类型是Direction

//dir 类型为 Direction? 值为 Direction.north

let dir = Direction(rawValue: 2) //表示取的是原始值为2那个别名(north)

dir?.rawValue

print(dir)

print(Direction.south.rawValue)

/*********函数********/

//表示函数的关键字 func

//函数的类型分为:四种

//1.无返回值 无参

func function1() -> Void{

print("无返回值,无参")

}

function1()

//2.无返回值 有参

func function2(name str:String) ->Void{

print(str)

}

//function2("蓝鸥")

function2(name: "蓝鸥")

//3.有返回值无参

func function3() -> String{

return "Hello"

}

let string = function3()

print(string)

//4.有返回值有参

func function4(a:Int ,b:Int) ->Int

{

return a+b

}

let result = function4(3, b: 4)

print(result)

//5.函数的返回值为元组类型(利用元组实现函数返回多个值)

func sumMulMinus(number1:Int,_ number2:Int) ->(Int,Int,Int){

return(number1 + number2,number1 * number2,number1 - number2)

}

//

//sumMulMinus(5, number2: 2)

sumMulMinus(5, 2)

//内部参数和外部参数

//内部参数名:在函数内部使用的参数名称

//外部参数名:在函数调用时候,显示的参数名称

//默认情况下,函数的第一个参数,不显示外部参数名,其余参数,显示外部参数名,并且和内部参数名一致

func  text(first one: Int,second two: Int){

print(one, two)

}

text(first: 10, second: 10)

//如果不想要显示外部参数名,使用“_”忽略掉

func text1(one : Int, _ two : Int) {

print(one, two)

}

text1(10, 20)

// inout参数

// 参数默认是常量:let

// 在参数前面添加var修改,就可以修改参数

// 如果参数使用inout来修饰,就成了输入输出参数,在函数内部修改参数,可以影响外部变量的值

func test8(inout name: String) {

name = "LIZE"

print(name)

}

var myName = "lize"

test8(&myName)

print("myName: " + myName)

// 参数前面用var修饰,修改参数

func test9(var name : String) {

name = "LIDAZE"

}

//函数嵌套

func test1(){

func test2(){

func test3(){

print("test3")

}

test3()

print("test2")

}

test2()

print("test1")

}

test1()

上一篇下一篇

猜你喜欢

热点阅读