Swift-基础-Day1

<pre name="code" class="plain">//
//  main.swift
//  swift-one
//
//  Created by Qsyx on 16/6/13.
//  Copyright © 2016年 Qsyx. All rights reserved.
//

import Foundation

print("Hello, World!")



//常量: 一个不可再次更改的对象
//变量:可以再次更改的对象



//常量的声明
let a = 1

//变量的声明
var b = 1

b = 200


//类型标注

var c : Int = 3
var d : Double = 9.888

//字符类型
var e : Character = "a"
//字符串类型
var f : String = "dasd"

//不管字符还是字符串类型,全部使用双引号

//常量和变量的命名
//不能以数组开头,不能使用特殊符号,不能使用关键字
let eee = 2


//输出常量和变量
//\(常量或变量)



//swift中,当一行上只有一条代码时:分号写或不写都可以.
//当一行上有多条代码时,分号必须写
var g = 4 ;  var h = 5;
//整数及浮点数
let i : Int = 10
//浮点数
let j: Float = 6.77
let k: Double = 9.88
//类型安全及类型推断
//swift中会自动判断数据类型: 不会讲一个错误的类型传给我们使用
var l = 7
var pi = 3.14
var q = "u"
//数据类型转换(整数与浮点数转换)(字符串与整数转换)
//整数与浮点数转换
//将类型写在前面:将想要转换的对象用小括号括起来
var w = Double(l)
var ff = Double(l)*3.14
var pii = Int(pi)

print(ff)
//字符串与整数转换:要求做到有意义的转换
let str1 = Int("1222")
print(str1)

// 类型别名
typealias char = Character
var ch : Character = "j"
var ch2 :char = "i"

//12 布尔值 true
var bool : Bool = true
bool = false

//13.元组
//将多个元素组合到一起,称为元组,元组里面的数据类型可以不同 (元组里面的元素个数最好不要大于7)
//声明元组
let yuanzu = (404,"NotFound")
//获取元组的元素
print("yuanzu是\(yuanzu)")
print(yuanzu.0,yuanzu.1)
//声明元组的另一种方式
let (int,string) = (1,"这是元组")
print(int,string)


//14 可选类型:
//在声明时: 将?放到类型的后面, 将对象设置为可选类型: 如果可选类型我们赋予初始值,对象使用初始值;如果我们没有赋予初始值;如果我们没有赋予初始值,则系统会默认为nil
var optional: Int? = 10
print(optional)

//15 nil:当一个可选类型我们没有赋予初始值时,系统会默认这个对象为nil

//16 强制解析:将一个可选类型的对象变为一般类型的对象 以供我们使用,在取值时,将!放到对象的后面
print(optional!)





//17 可选绑定: 判断 当可选类型有值时,条件成立,如果可选类型为nil 条件不成立 
//let 一个名称 = 之前的某一个对象
var asd : Int?
if let xx = asd
{
    print(xx)
}else
{
    print("空")
}

//18 隐式解析可选类型:就是将一个可选类型的对象变为以一个可以进行自动解析的可选类型: 其实就是将!在声明时放到类型的后面,而不是在取值时,放到对象的后面
var int12 :Int! = 12
print(int12)

//19 使用断言进行调试 assert
//当条件成立,代码继续向下执行 不影响整体工程; 当条件不成立 运行时会崩溃到这里.
//断言只是做辅助调试使用,没有实际意义
var int20 :Int = 20
assert(int20 < 100)
print("asdasdasd")


//运算符
/**
 *  基本运算符
 */
//1 赋值运算符  =
//2 算数运算符 + - * / %
// swift 取余运算是可以对小数取余的
let yushu = 5.5%2.5
print(yushu)

//3 组合赋值运算符 += -= *= /=
//swift中把++,--去掉了
var iii = 1
iii += 1
//比较运算符 > < <= >= == !=
//5 三目运算符 条件?答案1:答案2
//空合运算符 可选对象一 ?? 可算对象二
//当可选对象一为nil时,选择可选对象二使用,如果可选对象一有值,使用可选对象一
var kong1 : Int?
var kong2 : Int? = 3
var kong3 = kong1 ?? kong2
print(kong3)

//7 区间运算符 ... 三个点就是区间运算符
//1...5 // 1,2,3,4,5
//8 半开区间运算符 ..<
//1..<5 //1,2,3,4

//逻辑运算符 && || !

/**
 *  字符串
 */
//1. 字符串字面量
let str10 = "string"
//2.字符串初始化空字符串
let str11 : String = ""
let str12 : String = String()
//3 判断是否字符串为空 isEmpty
print(str10.isEmpty)
//4.字符串的可变性
let str13 = "hhhh"
var str14 = "aaaa"

//字符串的拼接
str14 += "k"
print(str14)

var str15 = "字符串1"
var str16 = "加上字符串2"
var str17 = str15 + str16
print(str17)

//字符串中字符遍历

var str18 = "china"
for c1 in str18.characters{
    print(c1)
}
//字符串数据类型
var ch1 : Character = "j"

//字符串插值
let str19 = "strjjjjj\(str18)ooooo"
print(str19)
//计算字符数量
print(str18.characters.count)
// 10.字符串索引
var str20 = "string"
//获取第一个索引
//获取第一个索引
print(str20.startIndex)
//获取最后一个索引
print(str20.endIndex)
//获取第二个索引
print(str20.startIndex.successor())
//获取后数第二个索引
print(str20.endIndex.predecessor())
//获取任意一个索引
print(str20.startIndex.advancedBy(3))
print(str20.endIndex.advancedBy(-3))
//使用索引
print(str20[str20.startIndex])

//11 indices 使用    index
//indices能将字符的下表获取
for iiii in str20.characters.indices
{
    print(str20[iiii])
}

//12 字符串插入
str20.insert("a", atIndex:str20.startIndex.advancedBy(3))
print(str20)

//13.字符串删除
//单个字符的删除
str20.removeAtIndex(str20.startIndex)
print(str20)

//删除某一段的范围
let Range = str20.endIndex.advancedBy(-3)..<str20.endIndex
str20.removeRange(Range)
print(str20)

//14.字符串比较
let a10 = "asdf"
let a11 = "asdf"
//比较字符串是否相等  ==
if a10 == a11{
    print("相等")
}else
{
    print("不等")
}
//15 前缀 后缀

print(a10.hasPrefix("asd"))
print(a10.hasSuffix("df1"))












        



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值