学習の記録ー13(クラスのインデントがわからん)
頭出し
F#でクラスを書くときにのインデントがよくわかってないので、以下に書くコードのMyFormクラスを適当に書き変えて
をメモっておきたい。
基本、=の後は改行+インデントしとけばいいという印象。ただclass...endの時は=の後にクラスって書いてもいいんだよなぁ…わからん。
open System open System.Windows.Forms type MyForm = inherit Form new() = {} then() [<EntryPoint>] let main (args :string []) = let x = new MyForm() 0
ちなみにこれはコンパイル通る。
F#界隈の諸先輩方
のコードをみると似たようなコードの中でinherit Form as baseとas baseをつけた既述をされているが、これをやるとコンパイルが通らない。
class ... end入れてみる
コンパイル通った。
type MyForm = class inherit Form new() = {} then() end
書籍「Expert F#3.0」のP143によるとこのように明示的にclass ... end*1で区切ってもいいんだが、なくても良いそうだ。どっちや。
*1:ほかにもstruct ... end, interface ... endがある