۱۸ اردیبهشت ۱۳۹۷: این پست برای اولین بار در ویرگول به این نشانی منتشر شده است.

دیو چنی توییت کرده که کد زیر چی چاپ میکنه؟

package main
import "fmt"
func f(u *uint) {*u++}
func main() {
 i := 0
 ‌f(&(uint)(i))
 fmt.Println(i)
}

بالطبع احتمالا همه انتظار داریم حاصل ۱ باشه، ولی این کد اصلا کامپایل نمیشه :)). دلیل خیلی ساده‌ست: «در گو شما فقط میتونی آدرس چیزایی رو استفاده کنی که آدرس‌پذیر باشن.». به بیان دیگه در گو فقط برای متغیرها، پوینترها، اسلایس‌ها، عناصر یک ساختار -=struct- و آرایه‌ها میشه آدرس رو داشت و پر واضح و مبرهن‌ه که در کد فوق، پارامتر ورودی f هیچ‌کدوم از اونها نیست. در این مورد اینجا رو ببینید.