Swiftで遊ぼう! - 1022 - Opaque Type
2020/21の年末年始は、全集中でSwift UIの勉強!ってできるだろうか。
色々と忘れてしまった概念が多いので、ブラシュアップ、ブラシュアップ、あれ?ブラシュアップって言うけど、ちゃんと理解できていたのか?
まずもって「Opaque Type」を日本語で何て表現したらいいのか分からない。「不透明型」?
いやあ、ちょっと違うな。「不明瞭型」... そんな訳語で表現している人もいないようだ。
ネットで調べると、プログラマの皆さんは、誰もが「Opaque型」と書いている。ということは、「オパーク型」と言っているのだろうか?なんか安易なような気がするけど、やはり英語圏の新しい概念の言葉が、日本語にかみ砕かれるまで時間がかかるのだろう。
Swiftで用意されている、ファンクション、メソッド、クロージャ(どうしてもカタカナ言葉が羅列するな)は、オパーク型を返すように定義できるけど、コンパイルするとき、必ず特定の「型」を持った値を返さないといけない。どこかで聞いた事があるよね。これは「ジェネリック」とよく似ている。ジェネリックは、何となく型の明示法が煩雑で、分かりにくいので、色々と問題があったんでしょう。オパーク型という新しい概念を導入することで、ジェネリックの代わりにしたような気もする。
func reversit(myList: [String]) -> some Collection { let reversed = myList.reversed() return reversed } let reversedList = reversit(myList: ["One", "Two", "Three", "Four", "Five"]) print(Array(reversedList)) // ここで型を明示する必要がある ["Five", "Four", "Three", "Two", "One"]
とこんな風に使うみたい。