zoukankan      html  css  js  c++  java
  • go语言摘记

    基本法则:

    1)在最外部声明的函数、类型、变量都要从其关键字开始。如func、type、var...

    2)任何代码都要以包为单位封装和被调用。

    3)大括号的前括号要在行末,后括号要另起一行行首。

    4)函数内声明的临时变量必须要使用。如要放弃接收变量可使用_符号接收值表示忽略。

    5)最外部声明的函数、类型、变量如果是首字母大写,表示公开,可被其他包使用。小写表示不公开。

    一 包

    1)包名顶行写:

    package 包名

    2)导入用import关键字,多个包可以使用符号()进行组合

    import "包路径"

    3)包名为包路径最后一段名字

    一 变量

    1)标准格式:

    var 变量名 类型

    2)声明时直接赋值可以省略类型,由其自动推导

    3)声明时直接赋值可以省略var,使用:=符号简写。该语法仅能在函数内使用。因为与更高级别的法则冲突:在最外部声明的函数、类型、变量都要从其关键字开始。

    二 函数

    1)标准格式:

    func 函数名(参数1 参数1类型, 参数2 参数2类型) (返回值 返回值类型) {

    }

    2)与声明变量相似的,参数、返回值的类型也要放在名称之后。这样做的理由是更易读,比如当复杂函数做参数传递时。

    3)函数返回值可以多个。也可以给返回值变量命名。

    三 结构

    1)标准格式:

    type 结构名 struct{

        成员变量名 类型,

        ....

    }

    2)结构的创建:省略成员名可以按顺序初始化;不省略名称则不需要顺序。

    3)type可以用来给别的类型起别名。当然之后需要显式转型。

    4)通过.操作符获取结构内的成员。

    四 指针

    1)go有指针类型,用*表示,*出现在类型前方。

    2)go没有指针运算

    3)获取变量的引用通过取地址符&获取。同理可以在类型创建的时候直接&获取其引用。

    4)引用变量的值要通过 *变量名 获取,*出现在变量名前方。

    5)如果是指针类型的结构,可以通过.操作符直接调用类型成员。(*p).Name和p.Name的效果相同。

    五 方法

    1)go没有类,但可以用类型作为函数的接收器实现结构的方法。本质上就是函数的第一个参数为该类型。

    2)不能给除自身包之外的类型添加方法。

    3)方法的语法结构:

    func (接收器变量 接收器类型) 函数名(参数)返回值{

    }

    4)使用方法,就是在类型变量后面使用.操作符。

    5)接收器可以是指针类型。因为go语言的传参本质就是拷贝,所以传递指针类型变量可以用于修改值。效果等同函数。

    6)当使用指针类型接收器的时候,使用方法也可以直接通过.操作符。(*p).Add()和p.Add()的效果相同。

    7)当接收器不是指针类型的时候,引用类型的变量也可以使用.操作符直接调用方法。但是要注意的是go的传参始终都是值拷贝。

    8)上述特性与函数参数不同,函数参数类型必须与声明的参数类型一致,不然无法通过编译。

    六 接口

  • 相关阅读:
    1052 Linked List Sorting (25 分)
    1051 Pop Sequence (25 分)
    1050 String Subtraction (20 分)
    1049 Counting Ones (30 分)
    1048 Find Coins (25 分)
    1047 Student List for Course (25 分)
    1046 Shortest Distance (20 分)
    1045 Favorite Color Stripe (30 分)
    1044 Shopping in Mars (25 分)
    1055 The World's Richest (25 分)
  • 原文地址:https://www.cnblogs.com/pasoraku/p/13755481.html
Copyright © 2011-2022 走看看