yano3nora
7/2/2017 - 11:28 AM

[go: note] new Programming language Go by Google. #go

[go: note] new Programming language Go by Google. #go

Overview

多分、Apple の Swift と Microsoft の C# をぶっ殺すっていう言語。結構高機能なんだけど…いまいち流行ってない(?)のはいつものグーグル様らしい。Go とか golang とか表記される。Gopher ちゃんとかいうキモかわいいマスコットがいる ... かわいくない。

WEB アプリのための FW も Revel, Gin, Echo, Martini などたくさん出てきているが、基本的には「静的言語ならではの速度」「 C より書きやすい」「並列処理実装が楽」などバックエンド側で、比較的複雑かつパフォーマンスの求められるバッチ処理なんかに向いているよう。

ORM としては gorm あたりがリレーションにも対応してくれているが ... なんだかんだガッツリ DB 操作するの厳しそうな印象。

feature

  • OSSなコンパイル言語
  • スクリプト言語っぽいシンプルな文法
  • 安全かつ高速
  • 同期処理できる
  • 並列処理できる(goルーチン)
  • webサーバ・アプリが得意
  • 各PFへのクロスコンパイルが得意
    • win, mac, linuxバイナリ対応
    • iOS, Androidにも制限ありつつ対応

reference


Syntax

Hello world

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

OOP

// 型(構造体の場合)の定義 
type MapEntry struct { 
  name string
  value int
 } 
 // メソッドの定義
 // トレイト的に後からぶち込む仕様
 func ( this *MapEntry ) PrintName() { 
    fmt.Printf("%s", this.name) ; 
}
func ( this *MapEntry ) PrintValue() { 
    fmt.Printf("%d", this.value) ; 
}

例外

try catch なし。panicとrecoverを用いる。