• Go基础2


    //https://tour.golang.org package main

    //  模块导入 import (  "fmt"  "math"  "runtime"  "time" )


    //  redis 支持“发布/订阅”的消息模式,可以基于此构建聊天室等系统 //  redis 贡献者之一,使用该模式开发的聊天室的例子,https://gist.github.com/348262


    // 模拟求开方的函数1,限制循环的次数为10

    func sqrt_simulate_1(x float64) float64 {  z := 1.0  for i := 1; i < 10; i++{   z -= (z * z - x )/(2 * z)  }  return z }

    // 优化的求开发,x不是很大的话,循环的次数会少

    func sqrt_simulate_2(x float64) float64 {  z := 1.0  delta := 0.000000001  for i := 1; math.Abs((z * z - x )/(2 * z)) > delta; i++{   z -= (z * z - x )/(2 * z)   fmt.Println("---------call time:",i)  }  return z }


    // switch 结构

    func show_switch(){

     fmt.Print("Go runs on ")

     switch os := runtime.GOOS; os {  

     case "darwin":    fmt.Println("OS X.")   

    case "linux":    fmt.Println("Linux.")

      default:    fmt.Printf("%s.", os)  }

    }

    // switch_evaluation_order

    func switch_evaluation(){  

    fmt.Println("When is Saturday?")  // 今天是星期几  

    today := time.Now().Weekday()  // now_time := time.Now()  

    // now_hour := time.Now().Hour()

     // now_min := time.Now().Minute()

     // now_sec := time.Now().Second()

     // fmt.Println(now_time, now_hour, now_min, now_sec)

     switch time.Saturday {   

    case today + 0:    fmt.Println("Today.")

      case today + 1:    fmt.Println("Tomorrow.")

      case today + 2:    fmt.Println("2 days later.")   

    default:    fmt.Println("Too far away.")

     }

    }

    // switch without a conditon ,可以用来做ie else else很长的那种逻辑

    func switch_without_conditon(){  fmt.Println("Switch without a condtion")  t := time.Now().Hour()  switch {   case t < 12:    fmt.Println("Good morning.")   case t < 17:    fmt.Println("Good afternoon.")   default:    fmt.Println("Good evening.")

     } }


    // defer,上下文都返回后才执行 // defer都放进栈里,后进先出

    func show_defer()

    {  

    defer fmt.Println("Day")

     defer fmt.Println("fucking")

     fmt.Println("What")  fmt.Println("a")

    }

    func counting(){

     fmt.Println("Counting")

     for i := 1; i < 10; i++

    {   defer fmt.Println(i)  }

     fmt.Println("Done")

    }


    func main(){  

    fmt.Println(sqrt_simulate_1(2), math.Sqrt(2))  

    fmt.Println(sqrt_simulate_2(2), math.Sqrt(2))

     fmt.Println(sqrt_simulate_2(70000), math.Sqrt(70000))

     show_switch()

     switch_evaluation()

     switch_without_conditon()

     show_defer()  counting()

    }

  • 相关阅读:
    朋友面试被问到---静态构造函数
    (设计模式之一)浅析简单工厂模式
    out与ref修饰符
    图解引用类型
    图解值类型
    PHP之路---1---Wamp环境配置--php环境配置
    js遮罩层弹出框
    总结
    PSP记录个人项目耗时情况
    代码复审
  • 原文地址:https://www.cnblogs.com/Wolfanature/p/5831020.html
Copyright © 2020-2023  润新知