nbsp; if count > start {
tmp = "\(tmp)\(ch)"
}
if count > toEnd - 1 {
break
}
count += 1
}
return tmp
}
static func valueOf(value: Bool) -> String
{
return "\(value)"
}
}
var str = "fkit.originsfsfsfsf"
var subStr = str.substringFromStart(start: 2, toEnd: 10)
var length_1 = subStr.lengthOfBytes(using: String.Encoding.utf8)
var length_2 = (subStr as NSString).length
// 8
print(subStr)
print(String.valueOf(value: true))
// 扩展添加构造器
struct Some_Struct_other
{
var name : String
var count : Int
}
extension Some_Struct_other
{
init(name:String)
{
self.name = name
self.count = 0
}
init(count : Int) {
self.name = ""
self.count = count
}
}
var sc1 = Some_Struct_other(name: "fsfsf", count: 5)
var sc2 = Some_Struct_other(name: "adad")
var sc3 = Some_Struct_other(count: 23)
// 使用扩扩展添加嵌套类型
extension String
{
enum Suit : String {
case Diamond = "方"
case Club = "梅花"
case Heart = "红桃"
case Spade = "黑桃"
}
static func judgeSuit(s: String) -> Suit?
{
switch s {
case "方":
return .Diamond
case "梅花":
return .Club
case "红桃":
return .Heart
case "黑桃":
return .Spade
default:
return nil
}
}
}
var S_1: String.Suit? = String.judgeSuit(s: "方")
var S_2: String.Suit? = String.judgeSuit(s: "J")
print(S_1?.rawValue ?? "nil")
print(S_2 ?? "nil")
// 输出结果
// 方
// nil
// 8.6 协议
// class ; 该关键字可有可无. 如果使用 class 关键字,则说明要求定义类型属性, 否则说明要求定义实例属性. 吃出不可用 ststic 代替 class
protocol Storkable
{
var storkeWidth : Double{ get set }
}
protocol Fullable {
var fullcolor : Color? { get set }
}
enum Color {
case Red, Green, Blue, Yellow, Cyan
}
protocol HasArea : Fullable, Storkable {
var area : Double {get}
}
protocol Mathable {
static var pi : Double {get}
static var e : Double {get}
}
struct Rect : HasArea, Mathable {
var widt