zoukankan      html  css  js  c++  java
  • DAY 98 go02

       1 go 介绍

        -部署方便---》可执行文件---》直接执行
       -静态强类型
    2 开发环境搭建
    -go sdk--》版本
       -ide:快速开发 goland
       -go version
       -go build
       -go run
       -go env  :gopath,goroot
    3 第一个helloworld
    -每一个go文件必须属于一个包  package main
       -main包下的main函数是整个项目的入口
       -fmt包下,包导入了不使用,就报错
       
    4 变量命名规范
    -关键字
       -保留关键字
       -变量建议驼峰,文件名建议下划线
       
    5 基础数据类型
    -数字(整数,无符号整型,float类型)
       -字符串("",``
       -布尔 true,false
       
    6 变量定义:
    -var a int =10
       -var a = 10
       -a := 10
       -变量不能重复定义,变量类型定义阶段就固定了,后期不能改
       
    7 常量
    -const关键字

    1 函数入门

    //1 基本定义函数(无参数,无返回值)
    //func test() {
    // fmt.Println("我是test")
    //}

    // 2 有参数,无返回值
    //func test(a int,b int) {
    //func test(a, b int) {
    // fmt.Println(b)
    // fmt.Println(a + b)
    //}

    //3 有参数,有返回值(声明返回值类型)
    //func test(a,b int) int {
    // return a+b
    //}

    //4 有多个返回值
    //func test(a,b int) (int,string) {
    // return a+b,"计算成功"
    //}

    //5 命名返回值
    //func test(a,b int) (sum int,success string) {
    // //var sum =a+b
    // sum =a+b
    // success="成功"
    // return
    //}

     

    2 函数高级

    //6 返回值是函数
    // 函数是一等公民,头等函数。。   函数可以赋值给一个变量
    // 匿名函数 ---》没有函数名的函数

    //func test() func() {
    // //a是函数类型
    // var a func()
    // a=func() { //匿名函数
    // fmt.Println("我是匿名函数")
    // }
    // return a
    //}

    //7 返回值是复杂函数
    //func test() func(a,b int){
    // return func(a,b int) {
    // fmt.Println(a+b)
    // }
    //}

    //type myfunc func(a int,c int)   //重命名
    //var a byte
    ////byte-->uint8,rune-->int32
    //type myint int
    //不要写出这种,只要能看懂即可
    //func test() myfunc{
    // return func(a int,c int) {
    // fmt.Println(a)
    // }
    //}

    // 8 闭包函数:定义在函数内部,对外部作用域有引用
    // 没有装饰器的概念--》python的特殊语法

    //func test(a int) func() {
    // return func() {
    // fmt.Println(a)
    // }
    //}

    //9 不定长参数
    //func test(a,b,c int) {
    // fmt.Println(a,b,c)
    //}

    //func test(a... int) { //可以传任意长度的int类型
    // fmt.Println(a)
    //}

     

    3 包

    # go中所有go文件必须属于一个包,包名要一致,一般以文件夹名命名
    # 定义自己的包,新建一个文件夹,内建s1.go,s2.go
    ##### s1.go
    package package01
    import "fmt"
    var A string="lqz"
    // 小写表示只在包内部使用,包私有,
    //大写开头表示公有,可以被外部包使用
    func Test() {
    //调用add ,由于在一个包下,直接使用即可,不需要导入
    res:=Add(9,5)
    fmt.Println(res)
    fmt.Println("我是package01包的test")
    }

    ####s2.go
    package package01
    func Add(a,b int) int {
    return a+b
    }


    ###在其他包内使用
    package main

    import (
    "day02/package01"
    "fmt"
    )
    //包的使用
    func main() {
    //包名.函数名  使用
    package01.Test()
    fmt.Println(package01.A)

    }

    4 if-else

    package main

    import "fmt"

    // if-else
    func main() {
    //var a = 10
    //if 条件{
    // 符合条件执行这个代码
    //}else 条件{
    // 符合条件执行
    //}else{
    // 执行这个代码
    //}
    //if a > 10 {
    // fmt.Println("大于10");
    //} else if a < 10 {
    // fmt.Println("小于10");
    //} else {
    // fmt.Println("等于10")
    //}
    if b:=90;b==90{
    fmt.Println("90")
    }
    }

    5 循环

    package main

    // 循环 :只有for,没有while关键字,通过for实现while循环
    // 语法
    //for 变量初始;条件;变量的自增/自减{
    // 循环体内容
    //}

    func main() {
    //1 循环把0--9打印出来
    //for i:=0;i<10;i++ {
    // fmt.Println(i)
    //}
    //var i =99
    //fmt.Println(i)

    //2 省略第一部分(区别在i的作用于范围不一样)
    //i:=0
    //for ;i<10;i++ {
    // fmt.Println(i)
    //}
    //fmt.Println(i)

    //3 省略第三部分
    //i := 0
    //for ; i < 10; {
    // fmt.Println(i)
    // i++
    //}

    // 4 省略分号(for 条件{}---->while循环)
    //i := 0
    //for i < 10 {
    // fmt.Println(i)
    // i++
    //}

    //5 for true {}
    //for true {
    // fmt.Println("死循环")
    //}

    //6 for {}  死循环
    //for {
    // fmt.Println("死循环")
    //}

    // 基于索引的循环

    //基于迭代的循环
    //var s ="lqz"
    //for i,v:=range s{
    // fmt.Println(i)
    // fmt.Println(v)
    //}

    // continue break  任何语言都一样

    }

     

    6 switch

    package main

    import "fmt"

    // switch:多分支,为了优雅的替换if-else

    func main() {
    //1 基本使用
    //var a=1
    //switch a {
    //case 1:
    // fmt.Println("1111")
    //case 2:
    // fmt.Println("222")
    //case 10:
    // fmt.Println("10--10--10")
    //}

    //2 多表达式判断
    //var a=90
    //switch a {
    //case 1,2,3,4:
    // fmt.Println("1111")
    //case 5,6,7,8:
    // fmt.Println("222")
    //case 9,10:
    // fmt.Println("10--10--10")
    //default: //上面都不符合,执行下面
    // fmt.Println("我不知道是多少")
    //}

    //3 无表达式
    //var a = 9
    //switch {
    //case a == 1, a == 2:
    // fmt.Println("1111")
    //case a == 8, a == 9:
    // fmt.Println("222")
    //case a == 9:
    // fmt.Println("10--10--10")
    //default: //上面都不符合,执行下面
    // fmt.Println("我不知道是多少")
    //}

    //4 Fallthrough (穿透)

    var a=3
    switch a {
    case 1,2,3,4:
    fmt.Println("1111")
    //fallthrough  //只要遇到fallthrough,就无条件执行下一个case
    case 5,6,7,8:
    fmt.Println("222")
    fallthrough
    case 9,10:
    fmt.Println("10--10--10")
    fallthrough
    default: //上面都不符合,执行下面
    fmt.Println("我不知道是多少")
    }

    }


    // goto:关键字,有用,只了解,不用去看
  • 相关阅读:
    5.6Java 创建File
    5.6Java File ApI
    Java字符集乱码
    5.17Java文件的拷贝
    5.10Java实操IO流,面向接口编程,面向父类编程
    5.6Java File对象使用递归打印子孙级目录以及文件的名称
    5.10JavaIo流四大抽象类
    5.17Java文件字节流
    5.7通过Maven配置seleeniumjava依赖
    5.6Java多态的介绍
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14894220.html
Copyright © 2011-2022 走看看