Go
( «Go ( )»)
![]() |
|
| : | |
|---|---|
| : | |
| : |
2009 |
| (): | |
| : |
1[1] (28 2012) |
| : | |
| : |
gc (8g, 6g, 5g), gccgo |
| : | |
Go , , Google[2]. Go 2007 , , [3] Inferno. 2009 . FreeBSD, OpenBSD, Linux, Mac OS X Windows.[4]
|
|
[]
, , Google, Go!, . . . . 2003 .[5] , Go[5].
[]
func g() { // }
if x { } else { // }
//Go C++ var v1 int // int v1; var v2 string // const std::string v2; () var v3 [10]int // int v3[10]; var v4 []int // int* v4; () var v5 struct { f int } // struct { int f; } v5; var v6 *int // int* v6; ( ) var v7 map[string]int // unordered_map* v7; () var v8 func(a int) int // int (*v8)(int a);
:
var ( i int m float )
var v = *p
v1 := v2 // var v1 = v2
Go , :
i, j = j, i // i j.
:
func f(i, j, k int, s, t string) string { }
; :
func f(a, b int) (int, string) { return a+b, "" }
:
func incTwo(a, b int) (c, d int) { c = a+1 d = b+1 return }
, , :
first, second := incTwo(1, 2) // first = 2, second = 3
Go :
- ( , , ),
- ,
- [3].
, [3] , , , .
[]
Go CSP (.) Occam Limbo,[3], -, .
Go (go-) go, go- ( ). go- , -, , go- go- (, , ) .
func server(i int) { for { print(i) time.Sleep(10) } } go server(1) go server(2)
var g int go func(i int) { s := 0 for j := 0; j < i; j++ { s += j } g = s }(1000)
go- ( chan), . <- , <- .
[] Go -
class Go , ( int) .
type newInt int
, . receiver ( this C++).
type myType struct { i int } func (p *myType) get() int { return p.i } func (p *myType) set(i int) { p.i = i }
type myInterface interface { get() int set(i int) }
myType myInterface, .
| . , - . . , , . |
[]
Go:
[]
«Hello, World!» Go.
package main import "fmt" func main() { fmt.Println("Hello, World!") }
Unix echo:
package main import ( "os" "flag" // ) var omitNewLine = flag.Bool("n", false, " ") const ( Space = " " NewLine = "\n" ) func main() { flag.Parse() // var s string for i := 0; i < flag.NArg(); i++ { if i > 0 { s += Space } s += flag.Arg(i) } if !*omitNewLine { s += NewLine } os.Stdout.WriteString(s) }
[]
[]
- Go (.)
- gomingw, Go MinGW Builds windows
- Go C++ ( ) (.)
- Go
- Learning Go (PDF), Creative Commons Miek Gieben, PDF- git- LATEX-.
- go: 1. , , IBM developerWorks
- The Go Programming Language YouTube
- A Tour of Go
- IRC : irc://irc.freenode.net/go-nuts irc.freenode.net
- : http://groups.google.com/group/golang-nuts
| Google Inc. | |
|---|---|
| (PageRank, ) |
|
| . | |
