• extension Array where Element 代码学习


    var fieldNames: [String] {

            let p = UnsafePointer<Int32>(self.pointer)

            return Array(utf8Strings: relativePointer(base: p.advanced(by: 3), offset: self.pointer.pointee.fieldNames))

        }

    间接类型推断?! 

    ---------------------------------------

    protocol UTF8Initializable {

        init?(validatingUTF8: UnsafePointer<CChar>)

    }

    extension String : UTF8Initializable {}

    extension Array where Element : UTF8Initializable {

        init(utf8Strings: UnsafePointer<CChar>) {

            var strings = [Element]()

            var pointer = utf8Strings

            while let string = Element(validatingUTF8: pointer) {

                strings.append(string)

                while pointer.pointee != 0 {

                    pointer.advance()

                }

                pointer.advance()

                guard pointer.pointee != 0 else {

                    break

                }

            }

            self = strings

        }

    }

  • 相关阅读:
    6月15日学习日志
    6月14日学习日志
    6月13日学习日志
    6月12日学习日志
    给建民哥的意见
    6月10日学习日志
    6月9日学习日志
    6月8日学习日志
    梦断代码读书笔记3
    第二次冲刺(六)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/9200762.html
Copyright © 2020-2023  润新知