Site icon image技術メモ

[SE-0415]Function Body Macros

参照


提案概要

  • 関数に対して付与することで、処理を追加することができるMacro

なぜ必要か

  • ボイラープレートを削減することが可能

どのように使うか

  • 利用例

Before

func g(a: Int, b: Int) -> Int {
  log("Entering g(a: \(a), b: \(b))")
  defer {
    log("Exiting g")
  }
  return a + b
}

After

@Logged
func g(a: Int, b: Int) -> Int {
  return a + b
}
  • 上記のような @Logged マクロを作れる(一例として。)

いつ使うか

  • ボイラープレートの削減

その他備考

  • 使って良いケースをチーム内で合意し管理すれば便利