44 lines
563 B
Go
44 lines
563 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
"os"
|
|
)
|
|
|
|
var cache = map[int]struct{}{}
|
|
|
|
func dirtySum(x, y *int) int {
|
|
result := *x + *y
|
|
|
|
// mutations of data (1)
|
|
*x = 0
|
|
*y = 0
|
|
|
|
// logging or files/network (2)
|
|
fmt.Println(result)
|
|
|
|
// global variables (3)
|
|
cache[result] = struct{}{}
|
|
|
|
// dependencies on parameters (4)
|
|
os.Getenv("parameter")
|
|
|
|
// unpredictable result (5)
|
|
result += rand.Intn(100)
|
|
|
|
return result
|
|
}
|
|
|
|
func pureSum(x, y int) int {
|
|
return x + y
|
|
}
|
|
|
|
func main() {
|
|
x := 13
|
|
y := 12
|
|
fmt.Println(dirtySum(&x, &y))
|
|
|
|
fmt.Println(pureSum(13, 12))
|
|
}
|