Open5

TCAの.runってなに?

ぴょんさんぴょんさん

Effectって?

It is the perfect place to do side effects, such as network requests, saving/loading from disk, creating timers, interacting with dependencies, and more.
ネットワークリクエスト、ディスクからのセーブ/ロード、タイマーの作成、依存関係とのやり取りなど、サイドエフェクトを行うのに最適です。

https://pointfreeco.github.io/swift-composable-architecture/0.40.0/documentation/composablearchitecture/effect/

サイドエフェクトって?

それ以外の副作用(side effect)のこと
https://zenn.dev/ueshun/articles/fcf1e27eca3cf5

ぴょんさんぴょんさん

副作用って?

プログラミングにおける関数には作用2種類出る

-主たる作用
-それ以外の作用

プログラミングにおいて、式の評価による作用には、主たる作用とそれ以外の副作用(side effect)とがある。 式は、評価値を得ること(※関数では「引数を受け取り値を返す」と表現する)が主たる作用とされ、それ以外のコンピュータの論理的状態(ローカル環境以外の状態変数の値)を変化させる作用を副作用という。https://ja.wikipedia.org/wiki/副作用_(プログラム)

主たる作用って?

同じ条件で何回呼び出しをしても同じ結果が返ってくるもの。

それ以外の作用って?

APIの呼び出しなど、同じ条件で呼び出しても同じ結果が返ってくるとは限らないもの
他の機能に影響を与えてしまう。
副作用

https://zenn.dev/marokanatani/articles/b57982886f633c

https://zenn.dev/ueshun/articles/fcf1e27eca3cf5

ぴょんさんぴょんさん

.runで使われるsendって??

渡されたActionを実行してくれるもの

return .run { send in
do{
//ここで非同期処理
await send(成功した時に送りたい処理とか)
}
catch{
await send(失敗した時の処理とか)
}