/*
Swift 的基本数据类型常量和变量、String 三个
*/
// Created by 周双建 on 15/12/16.
// Copyright © 2015年周双建. All rights reserved.
//
import UIKit
import Foundation
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
/*
Swift 中常量的声明使用 let
变量的声明使用 var (次关键词,被用与好多中开发语言。例如:HTML、APS、.net)
常量和变量的区别:常量已但被定义是不可改变的
变量定义后是可改变的
*/
//声明一个常量
let MaxCount = 20
print(MaxCount)
//声明一个变量
var MixCount = 0
MixCount = 10//常量是不可以这样写的
print( MixCount)
// 在同一行可以声明多个变量或者常量,变量或者常量之间用 “,”分隔
//变量
var BodyCount :Int =10,GirlCount : Int = 20,MailCount :Int =2
print([BodyCount,GirlCount,MailCount])
/*
打印结果:
[10,20,2]
*/
// 常量
let Body = 20,gril = 10,mail = 0
print([Body,gril,mail])
/*
[20,10,0]
/****************************************************************/
// 带类型的常量或者变量的声明
// 注意:在声明常量或者变量的时候,一般不带其类型,因为 Swift可以根据你给的值,来确定其类型。但也可以指定其,类型
//常量(int)
let Count_ZSJ : Int = 10
// let Count_ZSJ = 10 和上面的是等同的
// 其他类型
let Str : String = " 成功"
let Double_ZSJ :Double =5.20
let Float_ZSJ :Float =5.2
let Integer_ZSJ : NSInteger = 3
//注意在声明后,不可更改其类型
let Str_ZSJ = 20
// Str_ZSJ = "失败"这样是不对的。Str_ZSJ= 20这已经定义了 Str_ZSJ的类型了 是 int ,而 Str_ZSJ = "失败"是将一个字符串给Str_ZSJ
// 变量的道理和常量是一样的,就不在写了
/****************************************************************/
//常量和变量的命名规则
/*
Swift 中可以用任何字符作为常量和变量的名字,包括 Unicode字符
Unicode 字符:
¡¢£¤¥¦§¨©ª«¬ ®¯00B0°±²³´µ¶·¸¹º»¼½¾¿00C0ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ00D0ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß00E0àáâãäåæçèéêëìíîï00F0ðñòóôõö÷øùúûüýþÿ0100ĀāĂ㥹ĆćĈĉĊċČčĎď0110ĐđĒēĔĕĖėĘęĚěĜĝĞğ0120ĠġĢģĤĥĦħĨĩĪīĬĭĮį0130İıIJijĴĵĶķĸĹĺĻļĽľĿ0140ŀŁłŃńŅņŇňʼnŊŋŌōŎŏ0150ŐőŒœŔŕŖŗŘřŚśŜŝŞş0160ŠšŢţŤťŦŧŨũŪūŬŭŮů0170ŰűŲųŴŵŶŷŸŹźŻżŽžſ0180ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏ0190ƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟ01A0ƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯ01B0ưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ01C0ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏ01D0ǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ01E0ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯ01F0ǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ
这是部分,还有很多。
方法:
option + XXOO 就可以出现
*/
let 成功 = 30
let µ = "成功QQ吧"
let œ = 520
/*注意:
1、常量与变量名不能包含数字符号(+ - * /等)、箭头、保留的 Unicode、连接线、制表符
2、不能以数字开头,但其他地方可以使用
3、 Swift中 尽量命名不要和一些关键字一样,如果。一定要用也是可以的,那就需要反引号来包含
*/
//错的
//let 5g = 20
// 对的
let g5 = 20
// 使用关键词做名字
let `let` = 520
/*
注释:反引号是 波浪建在英文编辑下,打出的
/*****************************************************************/
//日志的输出
/*
在 OC里面 我们有 printf 、 NSlog
Swift 里面是 print、NSlog 注意 :println已经不在使用
*/
print(`let`)
NSLog("%d",`let`)
NSLog( "吧")
/*
2015-12-16 09:41:32.541 Swift_013[1745:78097] 520
2015-12-16 09:41:32.541 Swift_013[1745:78097] 成功QQ吧
可见,NSLog打印带有日期,这就便于调试
*/
// 字符串的拼接输出
/*
字符的拼接输出,这需要使用 Swift的插值语法。其形式是:
在字符串内部使用 \(变量名)
*/
let b = true
let name = "吧"
let number = 520
print("注意:\(name)的标语是\(number)是\(b)")
/*
打印成功:
注意:成功QQ吧的标语是520是true
/***************************************************************/
//下面是字符串的一些炒作
// 声明一个字符串
let XX ="I LOVE YOUR MONEY"
// 我们遍历一个字符串
// 获取字符串的长度
let Count = XX.lengthOfBytesUsingEncoding(4)
print(Count)
/*
这样写是错误的
for ch in XX {
print(ch)
}
因为 : String 不符合 SequenceType。但是,您可以使用 characters属性 String 。 characters 返回 String.CharacterView,顺应了 SequenceType
是对的
for ch in XX.characters {
print(ch)
}
/*
I
L
O
V
E
Y
U
R
M
N
/**************************************************************/
// 字符串的拼接
let c = "成功"
let s = "失败"
print(c+s)
/*
打印:
成功失败
//字符串与其他类型的进行拼接
let name_S = "吧"
let age = "\(name_S) 的年龄是6岁"
print(age)
let co = 7
print(name_S,co)
/*
成功QQ吧的年龄是6岁
成功QQ吧 7
/******************************************************************/
//判断字符串是否为空
var str = "d"
print(str.isEmpty ?"没":"有")
// 判断字符串是否包含某个字符
var sh = "dH"
print(str.containsString(sh))
/*
true
// 第一种 判断字符串是否相等
print( str == sh )
/*
false
// 第二种 comper 比较
/*
public enum NSComparisonResult : Int {
case OrderedAscending 升序
case OrderedSame 相等
case OrderedDescending 降序
*/
if str.compare(sh).hashValue ==1 {
print("相等")
}else if str.compare(sh).hashValue ==0 {
print("小于")
}else{
print("大于")
}
print( str.compare(sh).hashValue )
/*
通过 枚举的 hashValue 获取枚举的 值
str 和 sh相比 得出结果是 str 是大还是小
*/
/*
NSComparisonResult
// 第三种 比较
print(str > sh)
/*************************************************************/
//判断字符串的头和尾
/*
hasPrefix 是 头
hasSuffix 是 尾
*/
var My_Str ="http://www.baidu.com.image.png"
if My_Str.hasPrefix("http://") {
print("是网址")
}
if My_Str.hasSuffix(".png") {
print("是和图片相关的")
}
/***************************************************************/
//字符串的大小写转换
var str_zsj ="I love Your Qian Very Much "
// 转大写
print( str_zsj.uppercaseString )
/*
I LOVE YOUR QIAN VERY MUCH
转小写
print(str_zsj.lowercaseString )
/*
i love your qian very much
//字符串与其他类型的转换
// 整形转字符串,使用插值法
var QB = 23
let HJ = ("\(QB)")
// 字符串转其他,可直接转
var HK = "34eeeeffff"
let Mn = Int(HK)
/*
注意:
HK.toint() 该方法已经不再了
//利用 OC的方法转换
let BN :NSString = HK
let VB = BN.intValue
let Unicode = HK.unicodeScalars
print(Unicode)// 34时将其转化为 UniCode编码
//从哪个位置获取,字符串
let bm : NSString = HK
let AB = bm.substringFromIndex(1)
print(AB)
//从开始,到第三个位子
let Gh = bm.substringToIndex(3)
// Do any additional setup after loading the view,typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}