golang 用于解析HTML的类型,节点,常量等设置。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 用于解析HTML的类型,节点,常量等设置。相关的知识,希望对你有一定的参考价值。

type NodeType int32

const (
	ErrorNode NodeType = iota
	TextNode
	DocumentNode
	ElementNode
	Commentnode
	DoctypeNode
)

type Node struct {
	Type                    NodeType
	Data                    string
	Attr                    []Attribute
	FirstChild, NextSibling *Node
}

type Attribute struct {
	Key, Val string
}

go基础语法-常量与枚举

常量与枚举

1.常量定义

用const关键字修饰常量名并赋值,常量命名不同于java等语言,golang中一般用小写,因为在golang中首字母大写表示public权限

const a = 3

2.常量使用

使用数值常量进行运算时不需要进行强制类型转换,编译器会自动识别

const a,b = 3,4
var c int
c = int (math.Sqrt((a*a+b*b)))

3.枚举类型

golang没有特殊的关键字表示枚举,直接用const声明一组常量即可

const (
    c      = 0
    cpp    = 1
    scala  = 2
    python = 3
    golang = 4
    )

4.自增枚举

定义时,让第一个枚举值等于iota,后面的枚举不用赋值,编译器会自动赋值,iota:0开始以1为步进自增

const (
    c      = iota
    cpp
    scala
    python
    golang
    )

测试代码

package main
import (
    "fmt"
    "math"
)
/*
常量定义
 */
func consts() {
    const (
        fileName = "abc.txt"
        a, b     = 3, 4
    )
    var c int
    c = int(math.Sqrt((a*a + b*b))) //不需要强制类型转换
    fmt.Println(c, fileName)
}
/*
普通枚举
 */
func enums() {
    const (
        c      = 0
        cpp    = 1
        scala  = 2
        python = 3
        golang = 4
    )
    fmt.Println(c, cpp, scala, python, golang)
}
/*
自增枚举
 */
func iotaEnums(){
    //普通自增
    const (
        c      = iota
        cpp
        scala
        _           //占位符
        golang
    )
    //程序员自增
    const (
        b = 1 << (10*iota)
        kb
        mb
        gb
        tb
        pb
    )
    fmt.Println(golang,scala,cpp,c)
    fmt.Println(b,kb,mb,gb,tb,pb)
}
func main() {
    consts()
    enums()
    iotaEnums()
}

以上是关于golang 用于解析HTML的类型,节点,常量等设置。的主要内容,如果未能解决你的问题,请参考以下文章

go基础语法-常量与枚举

Golang入门到项目实战 | go语言数据类型

PHP 常量PHP 变量全解析(超全局变量变量的8种数据类型等)

Golang 有类型常量和无类型常量的区别?

Golang 有类型常量和无类型常量的区别?

golang的flag包源码解析与使用