Swift基本概念

准备:
1 在 swift中导入头文件只需要imPort就可,无需“”和<>
2 在Swift中自定义的文件都不要导入头文件可以直接使用
3 在swift中代码不用再写分号
例如:
头文件实例
一 常量和变量
A 定义变量的实质是开辟内存空间
// C 中:int a = 1;

let a = 1  //let表示是一个常量,相当于const修饰
var b = 2   // var 表示变量,
b = 5       //运算符的两边要空格都要空格,不加空格都不加空格(保持对称0.0)
var c = 2.36  //在swift中数据类型是自动腿短数据类型的,根据等号右边的的值判断是什么数据类型复制给等号左边的变量(常量)
// 指明数据类型的定义:在变量后面加上冒号(:)在冒号后面写上数据类型 。例下
var d:Int = 4

B 在C和OC中变量名命名规则:由数字,下划线,字母组成,其中数字不能开头,可以使用$(C和OC都是使用ASCII码编码方式)

在Swift中什么都可以当做变量名,使用的是Unicode的编码方式

var 你好 = "O(∩_∩)O~"
var O(∩_∩)O~ = "来"

二 数据类型

//强制类型转换:想要转换的类型()
var f:Float = 25.36
var g:Int = 2
var h:Int = g + Int(f)
print(h)--->27
//创建一个Bool类型  在这的Bool值为true或fa
var j:Bool = true  //print(j)为true

三 字符串

//a 创建一个空的字符串
var str_empty = ""
var str1_empty = String()
//b 字符串的拼接
var str1 = "你好"
var str2 = "shuai"
let str3 = str1+str2
print(str3)     //输出的为“你好shuai”
//c 计算字符串的长度
print(str3.characters.count) 
//d 在swift中没有格式化输出符,所有需要原样输出都使用\(),在()内写上需要输出的内容
print("a = \(a)")
//f 在swift中方法的调用使用点语法
//  在swift中if语句的()不用写
if str_empty.isEmpty
{
print("str_empty是空字符串")
}
//g 大小写的转换
var str4 = "Hello HandsomeBoy"
str4.uppercaseString     //大写
str4.lowercaseString     //小写

四 数组

//C:数组只能存放同一种类型的数据
//OC:数组只能存放对象,可以不是同一类的对象
//swift:在指定的数组元素类型的情况下只能存放同一种类型的数据   例下:
var array3:Array<Int> = [1,2,8]

//用var修饰的就是可变数组
//let修饰的就是不可变数组
//在swift中数组用[]的形式表示,也可以用 Array()初始化
var array = [1,2,3]
var array1 = [1,2.2,3]
var array2 = [1,"afhg",3]
//还是通过下标取元素
print(array[0])
//完整写法
let array4:Array<Int> = [1,2,3,4]
//不可变数组不仅仅是数组本身的长度不能改变 ,而且数组里面的元素也不能改变
//array4[1] = 8

//数组的常用方法
//添加
array.append(4)
//插入
array.insert(5, atIndex: 4)
//删除
array.removeAtIndex(4)
//范围性取值
array[0...2] = [4,4,4]
print(array)
//遍历 for没有括号
for value in array{
print(value)
}

五 元组

//元组就是元素的组合,在swift中用来修饰一个复杂的变量,类似于C中的结构体
var person = ("xiaohuang",25,"guangzhou")
print("person的年龄\(person.1)")

//使用元组同时对多个变量进行赋值
//如果在元组中某个值不想要使用下划线("-")代表
//var name = "xiaohuang"
//var address = "gaungzhou"
var (name,_,address) = person
print(name)   //--->"xiaohuang"
print(address)  //--->"guangzhou"

六 字典

//<>里面写的是键值对的类型
var dic:Dictionary<String,String> = ["k1":"v1","k2":"v2","k3":"v3"]

//在swift中的常用方法
//修改:在swift中通过中括号的形式找到key所对应的值
dic["k1"] = "V1"
dic.updateValue("value1", forKey: "k1")
print(dic)
//删除
dic.removeValueForKey("k3")
print(dic)
//获取字典的keys和values
//dic.values  //取出来的是swift里面的数据格式,不能直接使用
Array(dic.values)

七 流程控制

var k = 1
if 1 == k
{
print("k和1相等")
}
//swift
//1 必须要有default
//2 每个case里面至少要写一句代码
//3 每个case里面自带break
var l = 4
switch l
{
case 1:
    print("1")
case 2,4:     //两个case情况一样
    print("2")
    // fallthrough 表示向下贯穿一个case
    // fallthrough 要写在每个case的最后,因为遇到fallthrough就会向下贯穿
    fallthrough
case 3:
    print("3")
default:
    print("default")
}

//case可以是一个范围,而且可以交叉,如果两个case交叉只走第一种情况
var m = 10
switch m
{
case 1...15:
    print("1...15")
case 5...20:
    print("5...20")
default:
    print("default")
}

//case还可以双重判定
switch m
{
case 1...15 where l == 4:
    print("满足情况")
default:
    print("default")
}

八 循环语句

//while和do while和C语言的没有什么区别
//for循环的()不用写
// 1,9,3,6,8,5,4,2    //冒泡排序优化,实现跳出不必要的排序
//  1 判断是否为正确结果
//  2 跳出排序
var arr = [1,9,3,6,8,5,4,2]
for var i = 0;i < 7;i++
{
    var flag = 1
    for var j = 0;j<7-i;j++
    {
        if arr[j]>arr[j+1]
        {
            var temp = 0
            temp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = temp
            flag++
        }
    }
    if flag == 1
    {
         break
    }
}
print(arr) // --->(1 2 3 4 5 6 8 9)

9⃣ 枚举

enum Season:String
{
    case spring = "春天"
    case summer = "夏天"
    case autumn = "秋天"
    case winter = "冬天"
}
//在枚举变量中要想获取到真实值需要在后面添加一个rawValue
print(Season.summer.rawValue)

⑩ 函数

//函数的语法
/*
func是函数的关键字
func 函数名(参数列表)->返回值类型
{
函数体
}
*/
//1 定义一个函数
func sayHi (name:String)->String
{
  return name+" "+"Hello"
}
//2 函数的调用
sayHi("张三")

//3 在swift中通常使用元组返回多个值
func funname()->(a:Int,b:Int)
{
    let A = 1,B = 2
    return(A,B)
}
funname().a


//4 外部参数名
func personInfo(name:String,age:Int,address:String)->String
{
    return name + "\(age)" + address
}
//从Xcode7开始只有第一个参数没有外部参数名
personInfo("啦啦", age: 25, address: "广州")

//在原来的内部参数名前面可以添加一个外部参数名
func personInfo1(Name name:String,Age age:Int,Address address:String)->String
{
    return name + "\(age)" + address
}
personInfo1(Name: "牠试", Age: 50, Address: "北漂")

//5 传数值和传地址
//传数字
func changeValue(var num:Int)
{
    num++
    print(num)
}
var num1 = 3
changeValue(num1)

//传地址(inout关键字可以将实参地址传递给形参)
func changeValue1(inout num:Int)
{
    num++
    print(num)
}

var num2 = 3
changeValue1(&num2)
print(num2)

//6 函数可以嵌套
func test1()
{
    func test2()
    {
        print("test2")
    }
    test2()
    print("test1")
}
test1()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值