Skip to content

Instantly share code, notes, and snippets.

@tenntenn
Last active November 5, 2018 05:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tenntenn/7cd27f699023c259cf781d4f3e4326d5 to your computer and use it in GitHub Desktop.
Save tenntenn/7cd27f699023c259cf781d4f3e4326d5 to your computer and use it in GitHub Desktop.
init関数のふしぎ #golang ref: https://qiita.com/tenntenn/items/7c70e3451ac783999b4f
package main
import (
"fmt"
)
func init() {
fmt.Println("hello, init")
}
func main() {
fmt.Println("Hello, main")
}
package main
import (
"fmt"
)
func init() {
fmt.Println("hello, init")
}
func main() {
fmt.Println("Hello, main")
}
package main
import (
"fmt"
)
var msg = message()
func message() string {
return "Hello"
}
func init() {
fmt.Print(msg)
}
func main() {
fmt.Println(", playground")
}
package main
import (
"fmt"
)
var msg = message()
func message() string {
return "Hello"
}
func init() {
fmt.Print(msg)
}
func main() {
fmt.Println(", playground")
}
package main
import (
"fmt"
)
func init() {
fmt.Print("hello")
}
func init() {
fmt.Println(", init")
}
func main() {
}
package main
import (
"fmt"
)
func init() {
fmt.Print("hello")
}
func init() {
fmt.Println(", init")
}
func main() {
}
package main
import (
"fmt"
"runtime"
)
func init() {
var pcs [1]uintptr
runtime.Callers(1, pcs[:])
fn := runtime.FuncForPC(pcs[0])
fmt.Println(fn.Name())
}
func init() {
var pcs [1]uintptr
runtime.Callers(1, pcs[:])
fn := runtime.FuncForPC(pcs[0])
fmt.Println(fn.Name())
}
func main() {
var pcs [1]uintptr
runtime.Callers(1, pcs[:])
fn := runtime.FuncForPC(pcs[0])
fmt.Println(fn.Name())
}
package main
import (
"fmt"
"runtime"
)
func init() {
var pcs [1]uintptr
runtime.Callers(1, pcs[:])
fn := runtime.FuncForPC(pcs[0])
fmt.Println(fn.Name())
}
func init() {
var pcs [1]uintptr
runtime.Callers(1, pcs[:])
fn := runtime.FuncForPC(pcs[0])
fmt.Println(fn.Name())
}
func main() {
var pcs [1]uintptr
runtime.Callers(1, pcs[:])
fn := runtime.FuncForPC(pcs[0])
fmt.Println(fn.Name())
}
main.init.1
main.init.2
main.main
package main
import "fmt"
func init() {
fmt.Println("hoge")
}
func main() {
init()
}
package main
import "fmt"
func init() {
fmt.Println("hoge")
}
func main() {
init()
}
tmp/sandbox671239315/main.go:10: undefined: init
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment