• 1 代码片段1


    1.chan-数据交换

    package main
    
    import (
        "fmt"
        "time"
    )
    
    func add(a int,b int,c chan int){
        sum :=a+b
        time.Sleep(3*time.Second)
        c<-sum
    }
    
    
    func main(){
        pipe:=make(chan int,1)
        
        go add(10,20,pipe)
        
        sum:= <-pipe
        
        fmt.Println("10+20=",sum)
    }

    2.函数返回2个值

    package main
    
    import (
        "fmt"
        "time"
    )
    
    func calc(a int, b int) (int, int) {
        sum := a + b
        avg := (a + b) / 2
        return sum,avg
    }
    
    func add(a int, b int, c chan int) {
        sum := a + b
        time.Sleep(3 * time.Second)
        c <- sum
    }
    
    func main() {
    
        sum, avg := calc(10, 20) // sum, _ := calc(10, 20)
        
        fmt.Println("sum=", sum,"avg=",avg)
    }

     3.随机数rand

    package main
    
    import (
        "math/rand"
        "fmt"
        "time"
    )
    
    func main() {
        rand.Seed(time.Now().Unix())
        //10个随机数
        for i := 0; i < 10; i++ {
            a := rand.Int()
            fmt.Println(a)
        }
        
        for i := 0; i < 10; i++ {
            a:=rand.Intn(100)
            fmt.Println(a)
        }
        
        for i := 0; i < 10; i++ {
            a:=rand.Float32()
            fmt.Println(a)
        }
    }

    4.fmt的scanf格式化输出

    package main
    
    import "fmt"
    
    func main() {
        var a int
        var b bool
        c:= 'a'
        
        fmt.Printf("%v
    ",a)//相应值的默认格式。在打印结构体时,“加号”标记(%+v)会添加字段名
        fmt.Printf("%v
    ",b)
        fmt.Printf("%v
    ",c)
        
        fmt.Printf("%+v
    ",a)//相应值go语法表示
        fmt.Printf("%#v
    ",b)
        fmt.Printf("%#v
    ",c)
        fmt.Printf("%T
    ",c) //打印出值的类型
        fmt.Printf("90%%
    ") //转义百分号
        fmt.Printf("%t
    ",b) //单词true 或 false
        fmt.Printf("%b
    ",100) //二进制打印
        fmt.Printf("%s
    ","hello word") //字符串
        
        fmt.Printf("%q
    ","this is a test") //双引号围绕的字符串,由Go语法安全地转义
        
        fmt.Printf("%x
    ",5486) //十六进制小写
        fmt.Printf("%X
    ",5486) //十六进制大写
        
        fmt.Printf("%p
    ",&c)  //打印指针
        
        str := fmt.Sprintf("a = %d",100) //打印到变量,数字转换成字符串
        fmt.Printf("%q",str)

        a:=strconv.Itoa(10)


      fmt.Printf("%T ",a)//string
      fmt.Printf("%v ",a)//10
      fmt.Printf("%#v ",a)//"10"
      fmt.Printf("%q ",a)//"10"
    }

     5 素数

    package main
    
    import (
        "fmt"
        "math"
    )
    
    //100-200之间的素数
    
    func is_sushu(num int) bool {
        for i := 2; i <= int(math.Sqrt(float64(num))); i++ {
            if num % i == 0 {
                return false
            }
        }
        return true
    }
    
    func main() {
        var (
            a int
            b int
        )
    
        fmt.Scanf("%d,%d", &a, &b)
        for i := a; i <= b; i++ {
            if is_sushu(i) {
                fmt.Printf("%d是素数
    ", i)
            } else {
                fmt.Printf("%d不是素数
    ", i)
            }
        }
    
    }

    6 水仙花数

    package main
    
    import "fmt"
    
    //水仙花数
    
    func is_shuixianhua(a int) bool {
        var i, j, k int
        i = a % 10
        j = (a / 10) % 10
        k = (a / 100) % 10
        return a == i * i * i + j * j * j + k * k * k
    }
    
    func main() {
        var a, b int
        fmt.Scanf("%d%d", &a, &b)
        fmt.Println(a, b)
    
        for i := a; i < b; i++ {
            if is_shuixianhua(i) {
                fmt.Printf("%d 是水仙花数
    ", i)
            }
        }
    
    }

    7 阶乘和

    package main
    
    import "fmt"
    
    func jiecheng(a int) int64{
        var result int64 = 0
    
        for i:=1;i<=a;i++{
            //求i的阶乘
            var sum int = 1
            for j := 1; j <= i; j++ {
                sum = sum*j
            }
    
            result = result+int64(sum)
        }
    
        return result
    
    }
    
    func jie_cheng2(num int) int64{
        var s int64 = 0
        var sum int64 = 1
        for i:=1;i<=num;i++ {
            //sum 存i的阶乘
            sum = sum*int64(i)
            s = s+sum
        }
        return s
    }
    
    
    func main() {
        var a = 5
    
        s:=jiecheng(a)
        fmt.Println(s)
    
        s=jie_cheng2(a)
        fmt.Println(s)
    }
  • 相关阅读:
    面向对象编程思想概览(三)继承
    面向对象编程思想概览(二)封装
    面向对象编程思想概览(一)类和对象
    微软原版WINDOWS10-LTSB-X64位操作系统的全新安装与优化
    IntelliJ IDEA下SVN配置及使用
    Navicat for MySQL导入.sql文件
    IntelliJ IDEA中使用Git
    Git 下载、安装与SSH配置
    Access denied for user 'root'@'localhost' (using password:YES)解决方法
    Navicat for MySQL下载、安装与破解
  • 原文地址:https://www.cnblogs.com/jec1999/p/9822466.html
Copyright © 2020-2023  润新知