質問: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last! ``` この.userDomainMaskって何者なのかと思い、⌘を押しながらクリックしてみたところ以下のようになっていました。 (fileManagerのExtensionに含まれている。) ``` public struct SearchPathDomainMask : OptionSet { public init(rawValue: UInt) public static var userDomainMask: FileManager.SearchPathDomainMask { get } // user's home directory --- place to install user's personal items (~) public static var localDomainMask: FileManager.SearchPathDomainMask { get } // local to the current machine --- place to install items available to everyone on this machine (/Library) public static var networkDomainMask: FileManager.SearchPathDomainMask { get } // publically available location in the local area network --- place to install items available on the network (/Network) public static var systemDomainMask: FileManager.SearchPathDomainMask { get } // provided by Apple, unmodifiable (/System) public static var allDomainsMask: FileManager.SearchPathDomainMask { get } // all domains: all of the above and future items } ``` この定義が全く理解できません。 まず、SearchPathDomainMaskという構造体は、OptionSet型なのでしょうか??そして、public staticで宣言されている変数達の型はこの構造体自身の型になっている?? Google検索などしてみましたが、このような記載方法をしている例を上手く見つけられませんでした。。。 どなたかswiftの文法を説明頂ける方、ご教授いただけないでしょうか?? よろしくお願いいたします。
回答: > > まず、SearchPathDomainMaskという構造体は、OptionSet型なのでしょうか?? > > > プロトコルの実装です。 > > そして、public staticで宣言されている変数達の型はこの構造体自身の型になっている?? > > > それが何か? 例えばInt32型の最小値:minプロパティはやっぱりInt32型です。