お前のimport Debug
を数えろ
Elm初めてでprint仕方が分からないって人をツイッターで二人ほど見かけたのでやりかたを書いておきます
式と文の違いが判らないって人もいるかもなんですけどとりあえず気にしない方針です
追記:2018/08/22
0.19
が出ましたがここに書いてあることはそのまま動くのでよろしくお願いします
import Debug
まずimport
する
importいらなかった。書かなくていいです(書いてもいいです
update model msg =
case msg ->
NoOp ->
Debug.log "modelをprintして、返り値はmodel" model
InputName str ->
{ model | name = Debug.log "strをprint, model.nameにstrがセットされる" str }
IgnoreNum num ->
let
_ = Debug.log "numをprint、numが返るんだけど使わないので _ に入れて捨てる" num
-- アンダーバーは使いませんよーみたいな特殊な変数?
in
model
-- こんなふうに式を並べることはできない
-- Debug.log "numをprint、numが返るんだけど使わないので _ に入れて捨てる" num
-- model
UpdateUsers ->
{ model |
users =
model.users
|> List.map enhanceUser
|> Debug.log "enhanceされたuser listをprint"
|> List.map killUser
|> List.map (\user -> Debug.log "なぜかkillされたuserを1人ずつprint" user)
-- pipeの途中でいくらでもはさみこめるんでよろしく
}
大事なのは式(1行みたいな意味)を並べて書けないのと、Debug.log
はlogしたものがそのまま返ってくること
ElmのviewはただのElmコードなのでview内でももちろん同じことができます
view model =
div [] [ text <| log "printします" <| model.message ]
何もわからないおれはElmの文法がよくわからないままコードを書いている
って人向けにたぶんどこでも動くprintも書いておきます
let _ = Debug.log "このコード片は割とどこおいても大丈夫な気がする" something in
somethingに見たい変数を入れてください
ついでに2stepで学ぶDebug.log書いておきます
view model =
div [] [ text model.message ]
もとのコードがあります
view model =
div [] [ text (model.message) ]
step1. みたいものをかっこでかこむ
view model =
div [] [ text (Debug.log "log label" model.message) ]
step2. Debig.logを足す
ね、簡単でしたね