swift 学习笔记一

一:常量和变量

    方式1:类型推断

    方式2:类型标注

 swift语言有一个非常强大的功能,就是类型推断,不需要标注变量的类型,可以根据赋值进行类型自动匹配和推断

 类型标注 是指明变量的类型如Int等 这种是非常安全的

//
//  main.swift
//  ios_swift
//
//  Created by 阿三哥 on 16/6/16.
//  Copyright © 2016年 阿三哥. All rights reserved.
//

import Foundation

print("Hello, World!")

/*
  变量 var 变量名
 */
var a=10
print(a)

a=9;
print(a)

/*
   常量 let 常量名称
 */
let b=10
print(b)


/*
 类型标注 var 变量名称:变量类型
 */
var x:Int
x=100;
print(x)

/*
 常量声明必须赋值
 */
let y:Int=111;


/*
 名称不再符合标识符的规范
 */
var 中国=99999;
print(中国)

二:基本数据类型

var intMax=Int.max
print("int max value: \(intMax)")

var intMin=Int.min
print("int min value: \(intMin)")

/*
 无符号整形 和当前平台的原生字长度相同
 */
let minValue=UInt8.min
let maxValue=UInt8.max
print("int min: \(minValue) int maxValue: \(maxValue)")

/*
    数字类型字变量
    一个十进制数,没有前缀
    一个二进制数,前缀是0b
    一个八进制数,前缀是0o
    一个十六进制数,前缀是0x
 */

let decimalInteger=17
let binnaryInteger=0b10001
let octalInteger=0o21
let hexadecimalInteger=0x11

print("  ecimalInteger:\(decimalInteger) \n  becimalInteger:\(binnaryInteger) \n  octalInteger:\(octalInteger) \n  hexadecimalInteger:\(hexadecimalInteger)")

/*
 指数
 */
var i=1e2
print("10 的平方:\(i)")

let twoThousand:UInt16=2_000;
let one:UInt8=1;
let twoThousandAndOne=twoThousand+UInt16(one)

print("twoThousandAndOne:\(twoThousandAndOne)")

let three=3;
let poinyOneFourOneFiveNine=0.14159
let pi=Double(three)+poinyOneFourOneFiveNine;
print("pi:\(pi)")


三:类型推断和类型安全

  swift语言类似于kotlin 能给在不指定数据类型的 根据赋值进行自动推断类型

  swift在推断浮点值得时候会最终推断为Double

  数据类型不一致 进行运算就会提示不能编译

  如整数和浮点数相加 不转换就会编译失败

  不存在隐式转换,必须强转 类型因此而安全

四:类型转换

/*
  类型转换  语法:类型(值)
 */
var intVar=12.0;
var age=Int(intVar)
print("age is:\(age)")

五:BOOL类型

/*
 布尔类型 Bool true/fase
 */
let isMan=true;
print("isMan:\(isMan)")

if(isMan)
{
    print("isMan");
}else{
    print("isNotMan");
}

let isWoman=1;
if(isWoman==1)
{
    print("isWoman")
}else{
    print("isNotWoMan")
}

六:元组

/*
 元组 将不同类型数据进行组合 (30,"hello")
 */
let student=("张三",23,"男")
print("zhangsan:\(student)")
print("zhangsan name:\(student.0)")
print("zhangsan age:\(student.1)")
print("zhangsan sex:\(student.2)")


let student2:(String,Int,String)=("李四",24,"女")
print("lisi:\(student2)")
print("lisi name:\(student2.0)")
print("lisi age:\(student2.1)")
print("lisi sex:\(student2.2)")

// 提取元组
let (name1,age1,sex1)=student
print("name:\(name1)")
print("age:\(age1)")
print("sex:\(sex1)")

//  提取部分元素
let (name2,age2,_)=student
print("name2:\(name2)")
print("age2:\(age2)")


let student3=(name:"王五",age:45,sex:"男")
print("student3:\(student3)")
print("student3.name:\(student3.name)")
print("student3.age:\(student3.age)")

七:可选类型

/*
 可选值:optionals,一种是有值,一种没有值nil
 可选值可以用if语言判断
 */
var optionalValue :String? = "ok good"

print("optionalValue:\(optionalValue)")

/*
  可选值 强制解析 使用!符号
 当我们对可选值 强制解析 如果可选值没有值 会引发运行时异常
 */
var optionInt :Int? = 6;
var optionInt2:Int=optionInt!
print("optionInt2:\(optionInt2)")

// 可选绑定
if var svalue=optionInt
{
    print("可选值有值")
}


八:隐式解析可选


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亚洲小炫风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值