LoginSignup
13
8

More than 5 years have passed since last update.

多分間違えてるColaboratoryの使い方(Go入門)

Last updated at Posted at 2018-07-26

はじめに

goを勉強したいなと思ったのですが、環境構築するのが面倒で(ウソです。本当は全然面倒ではありません)かつ、どこでも使える環境が欲しいと思っていました。

実は、普段から旧cloud9上で jupyter を利用していたりするのですが、たまに落ちたりして困ることがありました。

そこで、Colaboratoryならいつでもどこでも使えるじゃん?と思い立ちやってみました。

Colaboratoryとは

Googleが作ったjupyterのクローン。googleアカウントさえあれば無料で利用できる。さらにGPUも無料!!

Google Colaboratoryにブラウザでアクセスするだけです。

jupyterとは
主に機械学習用に利用されている。
セルにPythonのコマンドを入力しながら実行しながらできるので試行錯誤がしやすい。
なれちゃうと、これなしでは生きていけなくなります。

環境設定

まずは、Colaboratoryの環境にgoがインストールされているかチェックします。
セルはそのままだとPythonが実行されますが、!を付けるとシェルコマンドが実行されます。
(複数行実行したい場合には、%%bashをつけると便利です。)
これをマジックコマンドといいます。

入力セル
!go
出力セル
/bin/sh: 1: go: not found

無常にもインストールされていません。

なら、インストールしてしまいましょう。

入力セル
!apt-get install golang

(出力は省略)

実行が終わったら、インストールできたか確認しましょう。

入力セル
!go version
出力セル
go version go1.8.3 linux/amd64

無事にインストールできました。

コーディング&実行

早速goのプログラムを書いていきます。

でも、Colaboratory上では、vimとか利用できません。
ここでまたマジックコマンドを利用します。

入力セル
%%writefile helloworld.go
package main

import "fmt"

func main() {
    fmt.Printf("Hello World\n")
}

参考 Go言語のHello Worldを3分で試す

%%writefile ファイル名
でセルの内容をすべてファイルに書き出すことができます。
ただし、欠点があり、シンタックスハイライトやオートインデントなどが使えません。

その後、以下のセルを実行します。

入力セル
!go run helloworld.go
出力セル
Hello World

注意

Colaboratoryの仕様でファイルの永続的な保存はできません。(数時間で初期化されます。)
よって

  • 毎回goをインストール必要あり
  • ソースも毎回作成する必要あり(なので、セルに%%writefileで記述するほうが早いです。)

もちろん、セルの内容はそのままgoogle driveに保存されます。

あと、クラウド環境なので、バージョンなど変わる可能性があります。

Colaboratoryでやるメリットデメリット

メリット

  • いつでもどこでもインターネットに接続できる端末があればできる。
  • 自分のPCの性能が悪くても問題なし。PCである必要もない。
  • 自端末が故障したりなくしたりしても大丈夫。
  • コマンド実行ログなども残る。
  • テキストセルがあるため、そちらにマークダウンでコメントを残せる。

デメリット

  • インターネットがないと使えない。
  • googleさんがやめたら使えない。
  • シンタックスハイライトや保管など高機能なエディタ機能が利用できない。
  • 対話型のシェルコマンドが利用できない。← これが何気に一番痛いです。

おわりに

今回はgoにしましたが、同じ方法で他の言語も利用できます。
Colaboratory便利なのでどんどん使いましょう!!

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8