zoukankan      html  css  js  c++  java
  • C#/Java 程序员转GO/golang程序员笔记大全(day 01)

    前言:

      整理一下学习 Go 语言的笔记,作为一名老程序,学习一名新的开发语言自然不需要像小白那样从 HelloWorld 看起。

      简单整理一下 Go 的一些差异处,希望对大家学习 go 有点帮助,不正确的地方还请指教!

    一、环境搭建:

      博客园很多教程,自行解决,推荐使用 VS Code 绿灯 + 插件的方式,简单粗暴好用

    二、第一课笔记整理:

    基础语法:
    // --------------------------------------- 变量声明

    var [名称] [类型]
    var name string
    
    // 自动推导类型
    [名称] := [值]
    name := ""
    
    // 类型转换
    str := "666"
    var i = 0
    i = (int)str

    // ---------------------------------------  range 迭代器

    str := "abc"
    for i, data := range str { // data 可省略
      fmt.Println(i, data)
    }

    // ---------------------------------------  函数定义

    // 函数名首字母小写即为 private,大写即为 public
    func [函数名](形参) (返回值) {
        // 方法体
        return 参数1, 参数2
    }
    // 不定参数类型(切片)
    func [函数名](args ...string)(返回值) {
        // ....
    }
    // 匿名变量
    num1, _ := Func()

    // ---------------------------------------  回调函数(多态)

    // ---------------------------------------  匿名函数与闭包

    func main() {
        a := 10
        f1 := func() {
             // 闭包是以引用的方式捕获外部变量
            // print(a)
        }
    
        f1()
        // 给一个函数类型起别名
        type FuncType func()
        var f2 FuncType
        f2 = f1
        f2()
    
        // 定义匿名函数,同时调用
        func() {
            // ..
        }() // 后面的()代表调用此匿名函数
        // 带参数同理
    }

     
    // ---------------------------------------  闭包的特点(装逼用法)

    // --------------------------------------- defer 关键字作用(延缓调用,类似析构函数)

    方法体类,执行结束后执行,常用一些关闭连接、关闭 IO 等操作
    
    注意:
    
    1、多个 defer 情况下,是先进后出的顺序
    
    2、defer 可以用与匿名函数的调用,如:defer func () { ... }


    // --------------------------------------- 工程管理

    1、分文件编程(多个源文件)
    2、设置 GOPATH 环境变量
    3、同目录必须包名一致
    4、go env 查看相关环境路径
    5、同一目录,直接调用文件函数即可,无需包名
    
    // 包引用
    import (
      // 默认不调用 init 方法
      _"fmt"
    )

     
    // --------------------------------------- 工程管理

    if 变量名:a, a < 10 {
        // ...
    }
  • 相关阅读:
    Linux C编程之二十一 Linux高并发web服务器开发
    Linux C编程之二十 xml-json
    Linux C编程之十九(2) libevent
    Linux C编程之十九(1) libevent基本概念
    Linux C编程之八 文件操作相关函数
    Linux C编程之七(2) 系统IO函数
    Linux C编程之六 makefile项目管理
    Linux C编程之四 动态库(共享库)的制作
    Linux C编程之五 gdb调试
    .net core 3.1 mvc string接收为null解决方案
  • 原文地址:https://www.cnblogs.com/loongsoft/p/9338382.html
Copyright © 2011-2022 走看看