前回からのおさらい
前回、環境構築編(MacOS)で各スクリプトを動かすための環境を作りました。
今回から実際にプログラムの動きを確認していきます。
Hello World
プログラムの勉強をするのに最初にやること。
それは間違いなく「Hello World」の文字を画面に映し出すことで、wikipediaによると、
Hello world
プログラミングできるコンピュータの開発以来、小さなテストプログラムは存在してきたが、テスト文言として「Hello, World!」を使う習慣はブライアン・カーニハンとデニス・リッチーによる著書「プログラミング言語C」(1978年)[2]のC言語バージョンから始まったと言われている。同著書のプログラム例はhello, world(大文字なし、感嘆符なし)を標準出力に出力する。この例はブライアン・カーニハンがまとめたベル研究所の内部資料「Programming in C: A Tutorial」(1974年)[3]を継承したものである。
へー、そうなんだ。
GoのHello World
ではまず、Goから。
package main
import "fmt"
func main() {
fmt.Printf("Hello Golang\n")
}
そして実行
$ go run hello.go
Hello Golang
表示されました❗️
どこで拾ったかもわからないくらい、どこでも入手できる、オーソドックスなスクリプトのようです。
1行目のpackage
は名前空間とのこと。簡単に言えば外部から参照する際の識別子みたいなものでしょうから、当面簡単なスクリプトを作っている間は気にしなくて良さそうですね。
3行目のimport
。これは少々驚きでした。
文字列を標準出力に表示するだけの単純な処理なのに、組み込み関数に含まれていないというのは意外でした。
今後、Go触れることで、スクリプト言語Golangに対してのGoogleの設計思想が理解できてくることで、わかってくることなのでしょうね。
Goプログラミング言語仕様 - 組み込み関数
4行目はエントリポイント。main関数から処理が始まるようです。
5行目が標準出力への出力処理。
fmt パッケージのPrintf
の説明を読む限り、C言語でのprintf関数相当のものだそうで、format処理も含まれているということですね。
Hello Worldは単純な処理ですが、初めて触る言語に対しては色々と見えてくるものがあるのが不思議です。
それでは他の言語も見ていきましょう。
Python
Pythonでは組み込み関数にprint
関数が実装されているため、そのまま出力処理を行えます。
組み込み関数
print("Hello Python")
実行結果
$ python hello.py
Hello Python
Ruby
Rubyではどこからでも参照されるモジュールKernel
にてprint
関数は組み込まれています。
改行に関しての処理は文字列に含めず、puts
を使う方が他の言語と同じ動作になるのかもしれません。
module Kernel
print "Hello Ruby\n"
実行結果
$ ruby hello.rb
Hello Ruby
Perl
Perlでは組み込み関数perlfunc
にてprint
関数は定義されています。
古いバージョンのドキュメントですが、perlfunc - Perl 組み込み関数
print "Hello Perl\n";
実行結果
$ perl hello.pl
Hello Perl
Bash
Bashの場合は組み込みコマンドで文字を出力しているわけではありません。
Bashで組み込みコマンドを一覧表示する方法
※bashvmで指定したbashでの組み込みコマンドの確認方法はわかりませんでした
外部コマンドのLinux系なら恐らく入っているであろうecho
コマンドを使用して標準出力に出力しています。
echo "Hello Bash"
実行結果
$ bash hello.sh
Hello Bash
はじめてGolangを触ってみた感想
やはり他のスクリプト言語と比べて、組み込み関数が極端に少ないということ。
返せば本体は身軽で、動かす環境次第でどのようなパーツを使うかを選別できるということかな。
この辺りは今後触って身を以て学んでいきます。
今後も使ったスクリプトは以下のGithubに残していきます。
https://github.com/kuroseets/my_stady_golang
ではでは。