golang[函数篇]

package main
func average(values []float64) float64{
    if len(values) == 0{
        return 0
    }
    sum := 0.0
    for _,value := range(values){
        sum += value
    }
    return sum/float64(len(values))
}
func main(){
    value := []float64{10,10,12,14,15}
    println(average(value))
}

  

package main
func swap(a,b int)(int,int){
    if(a<b){
        return a,b
    }
    return b,a
}

func main(){
    a,b := swap(1,2)
    print(a,b)
}

  

package main
import (
    "fmt"
    "strconv"
)
type Stack struct{
    index int
    data [10]int
}

func (this *Stack) Push(i int) int {
    if(this.index>=10){
        return -1
    }
    this.data[this.index] = i
    this.index++
    println(this.index)
    return 0
}

func (this *Stack) Pop() int{
    if(this.index<=0){
        return -1
    }
    value := this.data[this.index - 1]
    this.index--
    return value
}

func (this *Stack) String() string{
    var str string
    for i:=0;i<this.index;i++{
        str = str + "[" + strconv.Itoa(i) + ":" + strconv.Itoa(this.data[i]) + "]"
    }
    return str
}

func main(){
    var obj Stack
    obj.Push(12)
    obj.Push(13)
    obj.Push(14)
    obj.Pop()
    print(obj.String())
    fmt.Printf("%v",obj) 
}

  

package main
func testfunc() func(int) int{
    return func(a int) int {return a+1}
}
func main(){
    p := testfunc()
    println(p(2))
}

  

posted on 2011-12-23 17:22  51Liuda  阅读(566)  评论(0编辑  收藏  举报

导航