zoukankan      html  css  js  c++  java
  • 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()

    }

  • 相关阅读:
    java生成二维码
    关于使用QRcode.jar生成二维码
    sun.misc.BASE64Encoder找不到jar包的解决方法
    perl 调用方法 子例程说明
    perl 访问类方法的几种方式
    perl use base 代替 @ISA
    perl 为什么要用引用来做对象呢?
    12.5.3 UNIVERSAL:最终的祖先类:
    Informix9客户端工具Server Studio JE乱码的解决方法
    perl 使用SUPER类来访问覆盖的方法
  • 原文地址:https://www.cnblogs.com/Wolfanature/p/5831020.html
Copyright © 2011-2022 走看看