プログラマ英語学習日記

プログラミングと英語学習のまとめなど

WWDC2018 What's New in Swift

リスニングの練習かねて最近はWWDC2018動画を見てます。せっかくなのでまとめ共有です。

推測聞きばかり...さすがに網掛け聞きできるほど器用ではない。

一回目は What's New in Swift 。今までと比べると小規模な変化です。

概要

  • Swiftロードマップ
  • 新規API
  • ビルド設定関係

Swiftロードマップ

  • Swift4.2は秋リリース
  • Swift5.0が来年の早い段階でリリース予定
    • Swift-RuntimeがOSに入るらしい
    • 起動が早くなるとか

新規API

hashable

hashCode関数が大幅変更。Hasher に値をいれていく。Hash用の値がプロセスごとに変わりより安全になる。

//Before 
protocol Hashable {
   var hash : Int 
}

//After
protocol Hashable {
   func hashValue(into hasher: inout Hasher)
}
struct User : Hashable {
   let name: String
   let id : Int64
   func hashValue(into hasher: inout Hasher)
      name.hash(&hasher)
      id.hash($hasher)
   }
}

CaseIterable

CaseIterable が追加、allCasesenum定数一覧をまとめた定数を自動生成してくれる

enum Direction2: CaseIterable {
    case east
    case west
    case north
    case south
}
 
print(Direction2.allCases)  //east,west,north,south

Random

Random生成がInt/Floatなどに追加され楽に。shuffledなど便利機能も

//range指定で取得
let randInt = Int.random(in: 1..< 10)
let randFloat = Float.random(in: 0..< 1)

//配列系
let arr = [1, 2, 3, 4, 5]
//ランダムに要素取得。Optionalが返るので注意
let randomValue = arr.randomElement()!
//ランダムに並び替えた配列の取得
let randomized = arr.shuffled()

便利マクロ系

  • #if canImport()
    • ()内Framewokrがあるかどうか。 #if canImport(UIKit) など
  • #if hasTargetEnvironment
    • #if hasTargetEnvironment(simulator)
    • x86判定しなくてもいいように

Xcode

  • Size-Optimizedオプションが追加された
    • 10~30%小さいが、5%遅くなる
    • 新興国向けなどに
  • Incrementalビルドモードが追加



ざっと目立った変更は上記ぐらいでした。去年おととしと比べると、だいぶ控えめですね。
もっとも聞き取りが甘いので、細かい見落とし(聞き落とし)はかなりあると思いますけど。

しかし1年前と比べてまったくリスニング力が変わっていない気が少々。本当に英語は長い道のりですね...

Kindle入手 & 「もしも高校四年生があったら、英語が話せるようになるか」感想

久々の大型出費。ここ数日開催されていた「母の日セール」でついに Kindle 購入しました!

もちろん多読用途です。ついでに気になっていた本「もしも高校四年生があったら、英語が話せるようになるか」をついでに発注しました。

以下簡単な感想でも

f:id:nexus1:20180513211409j:plain

続きを読む

Oxford Reading Tree読了、多読5万語突破

先日のプレプレ多読、再度図書館にいきOxford Reading TreeのStage 6-9、図書館にあるだけ全て読破しました。実は前回の記事の翌日にもいっており、合計約15時間 という読書づけな連休でした。

15時間後の感想と身体に起こった変化をメモしておきたいと思います。

続きを読む

図書館でプレプレ多読を始める

まだマップだとだいぶ先になるのですが、どうしても「ある程度の長さの文章を読む」ことへの抵抗感を消したくて多読を始めてみました。

ただし本来のマップの多読より相当レベルの低い本から始めたので、プレプレ多読 というところです。

続きを読む