美文网首页
Swift中遇到的不好理解的方法整理

Swift中遇到的不好理解的方法整理

作者: Sweet丶 | 来源:发表于2022-05-18 22:57 被阅读0次

    遇到的一时间不好理解的方法整理,持续更新

    1. resolvingAgainstBaseURL

    系统的URLComponents结构体能很好的将URL分成多个部分,其中的一个初始化方法包含了resolvingAgainstBaseURL如下, 经过查词典和运行结果比对,翻译为:处理生成URLComponents时以第一个参数URL中的BaseURL为背景。

    public init?(url: URL, resolvingAgainstBaseURL resolve: Bool)
         // 1.对于以relativeTo初始化的URL,会生效。
        let baseURL = URL(string: "http://server/foo/")!
        let url = URL(string: "bar/file.html", relativeTo: baseURL)!
        print(url.absoluteString) // "http://server/foo/bar/file.html"
        
        let comp1 = URLComponents(url: url, resolvingAgainstBaseURL: false)!
        print(comp1.string) // Optional("bar/file.html")
    
        let comp2 = URLComponents(url: url, resolvingAgainstBaseURL: true)!
        print(comp2.string) // Optional("http://server/foo/bar/file.html")
    
        // 2.对于不是以relativeTo初始化的URL,不会生效。
        let url2 = URL(string: "http://server/foo/bar/file.html")!
        print(url2.absoluteString) // "http://server/foo/bar/file.html"
        
        let comp11 = URLComponents(url: url2, resolvingAgainstBaseURL: false)!
        print(comp11.string) // ptional("http://server/foo/bar/file.html")
        
        let comp22 = URLComponents(url: url2, resolvingAgainstBaseURL: true)!
        print(comp22.string) // Optional("http://server/foo/bar/file.html")
    
    2. truncatingRemainder(dividingBy other: Double)

    对于Double类型数据,Swift基础库中提供了一个截断除法取余的方法:
    其实现的原理是,将数据a除以除数b后向下取整得到c,然后用余数r = a - b*c.

        ///     let x = 8.625
        ///     print(x / 0.75)
        ///     // Prints "11.5"
        ///
        ///     let q = (x / 0.75).rounded(.towardZero)
        ///     // q == 11.0
        ///     let r = x.truncatingRemainder(dividingBy: 0.75)
        ///     // r == 0.375
        ///
        ///     let x1 = 0.75 * q + r
        ///     // x1 == 8.625
    @inlinable public func truncatingRemainder(dividingBy other: Double) -> Double
    

    相关文章

      网友评论

          本文标题:Swift中遇到的不好理解的方法整理

          本文链接:https://www.haomeiwen.com/subject/ogojhrtx.html