開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
入門Goプログラミング (Nathan Youngman(著)、Roger Peppé(著)、吉川 邦夫(監修, 翻訳)、翔泳社)のUNIT 3(関数とメソッド)、LESSON 13(メソッド)の練習問題の解答を求めてみる。
コード
package main
import "fmt"
type celsius float64
type fahrenheit float64
type kelvin float64
func (c celsius) fahrenheit() fahrenheit {
return fahrenheit(c*9/5 + 32)
}
func (c celsius) kelvin() kelvin {
return kelvin(c + 273.15)
}
func (f fahrenheit) celsius() celsius {
return celsius((f - 32) * 5 / 9)
}
func (f fahrenheit) kelvin() kelvin {
return f.celsius().kelvin()
}
func (k kelvin) celsius() celsius {
return celsius(k - 273.15)
}
func (k kelvin) fahrenheit() fahrenheit {
return k.celsius().fahrenheit()
}
func main() {
fmt.Printf("%v\t%v\t%s\n", "摂氏", "華氏", "ケルビン")
format := "%.2f\t%.2f\t%.2f\n"
c := celsius(0)
fmt.Printf(format, c, c.fahrenheit(), c.kelvin())
f := fahrenheit(0)
fmt.Printf(format, f.celsius(), f, f.kelvin())
k := kelvin(0)
fmt.Printf(format, k.celsius(), k.fahrenheit(), k)
}
入出力結果(Zsh、PowerShell、Terminal)
% go run method.go
摂氏 華氏 ケルビン
0.00 32.00 273.15
-17.78 0.00 255.37
-273.15 -459.67 0.00
%
0 コメント:
コメントを投稿