bgnori / broom

golang practice.
1 stars 0 forks source link

chan操作のためのmacro群 #31

Open bgnori opened 10 years ago

bgnori commented 10 years ago

これではお話にならない

(try-send ch v)とかしたい.

(define my-chan-type (. reflect ChanOf
                        (. reflect ChanDir true true)
                        (. reflect TypeByKind (. reflect Int))))

(define my-chan (. reflect MakeChan my-chan-type 1))

(. my-chan TryRecv) ; (<invalid Value> false)
(. my-chan TrySend (. reflect ValueOf 1)) ; true
(. my-chan TrySend (. reflect ValueOf 1)) ; false
(. my-chan TryRecv) ; (<int value> true)

(macro-select-case [my-chan 1] (print "sending"))