微信号:swiftTips

介绍:为保证文章质量,现两日一更,欢迎关注! 收集与分享swift文章swift语言技术 swift开发 swift编程 YouTube搬运工 视频地址:http://space.bilibili.com/5551264

Swift开源了,有什么好处?

2015-12-05 19:46 findM

昨天swift开源了,喜大泪奔的好消息!

Swift的官方网站https://swift.org
Swift在github的开源地址https://github.com/apple/swift

Swift开源了有什么好处?
我想从以下的几个方面来回答:

1.学习Swift更加方便和简单了

学习Swift的时候,遇到问题,或者有一些想法的时候,你可以打开Swift的源码参考一番,我相信会有很大的收获。
举个例子,我们来看看Swift中的Bool类型的定义和实现,是不是对你自定义一个类型的时候很有帮助呢?

public struct Bool {

internal var _value: Builtin.Int1


/// Default-initialize Boolean value to `false`.

@_transparent

public init() {

let zero: Int8 = 0

self._value = Builtin.trunc_Int8_Int1(zero._value)

}


@_transparent

internal init(_ v: Builtin.Int1) { self._value = v }

}


extension Bool : _BuiltinBooleanLiteralConvertible, BooleanLiteralConvertible {

@_transparent

public init(_builtinBooleanLiteral value: Builtin.Int1) {

self._value = value

}


/// Create an instance initialized to `value`.

@_transparent

public init(booleanLiteral value: Bool) {

self = value

}

}

extension Bool : BooleanType {

@_transparent

@warn_unused_result

public func _getBuiltinLogicValue() -> Builtin.Int1 {

return _value

}


/// Identical to `self`.

@_transparent public var boolValue: Bool { return self }


/// Construct an instance representing the same logical value as

/// `value`.

public init<T : BooleanType>(_ value: T) {

self = value.boolValue

}

}

extension Bool : CustomStringConvertible {


/// A textual representation of `self`.

public var description: String {

return self ? "true" : "false"

}

}


// This is a magic entrypoint known to the compiler.

@_transparent

public // COMPILER_INTRINSIC

func _getBool(v: Builtin.Int1) -> Bool { return Bool(v) }


@_transparent

extension Bool : Equatable, Hashable {

/// The hash value.

///

/// **Axiom:** `x == y` implies `x.hashValue == y.hashValue`.

///

/// - Note: the hash value is not guaranteed to be stable across

/// different invocations of the same program. Do not persist the

/// hash value across program runs.

public var hashValue: Int {

return self ? 1 : 0

}

}

//===----------------------------------------------------------------------===//

// Operators

//===----------------------------------------------------------------------===//


// Unary logical complement.

@_transparent

@warn_unused_result

public prefix func !(a: Bool) -> Bool {

return Bool(Builtin.xor_Int1(a._value, true._value))

}


@_transparent

@warn_unused_result

public func ==(lhs: Bool, rhs: Bool) -> Bool {

return Bool(Builtin.cmp_eq_Int1(lhs._value, rhs._value))

}


2.Swift会变得更加的完善

Swift开源不到一天的时间,Swift项目在github收到了13087个star,1351个fork。并且还在快速增长中......
这表示了众多开发者对Swift这个语言的关注和热情十分的高涨,并且全球的开发者都会为Swift贡献自己的代码和力量。大家看下图体验一下:



3.Swift更加强大,更加广泛的应用

目前Swift支持的平台,除了自家的iOS, OS X, watchOS, 和 tvOS.还支持了Linux平台。

New Platforms
We can’t wait to see the new places we can bring Swift—together. We truly believe that this language that we love can make software safer, faster, and easier to maintain. We’d love your help to bring Swift to even more computing platforms.

苹果公司是支持大家把Swift移植到别的平台去的,日后必定有有能力的开发者,在别的新的平台上使用Swift。






 
swift 更多文章 搬运自YouTube的一些不错的Swift语言视频教程 IOS框架和服务介绍(一)Cocoa Touch Layer(触摸UI层) IOS框架和服务介绍(二)MediaLayer(媒体层) IOS框架和服务介绍(三)CoreServices Layer(核心服务层) IOS框架和服务介绍(四)Core OS Layer(核心OS层)
猜您喜欢 程序员是一碗青春饭吗? 跟我学Spring3(3.1):DI的配置使用(上) GitHub上整理的一些实用工具 做一名程序员需要学哪些知识?