当前位置: 首页 > news >正文

阿里巴巴网站怎么做自己怎么注册网站

阿里巴巴网站怎么做,自己怎么注册网站,杭州制作网站的公司,网站建设 成都今网科技Golang学习笔记_17——方法 Golang学习笔记_18——接口 Golang学习笔记_19——Stringer 文章目录 error1. 接口2. 创建3. 自定义错误4. 处理错误5. 实现Error接口 源码 error 在Go语言中,error 是一个内建的接口类型,用于表示和处理错误情况。它是Go语言…

Golang学习笔记_17——方法
Golang学习笔记_18——接口
Golang学习笔记_19——Stringer


文章目录

    • error
      • 1. 接口
      • 2. 创建
      • 3. 自定义错误
      • 4. 处理错误
      • 5. 实现`Error`接口
    • 源码


error

在Go语言中,error 是一个内建的接口类型,用于表示和处理错误情况。它是Go语言错误处理机制的核心。下面将详细讲解Go语言中 error 的相关概念和用法。

1. 接口

error 接口非常简单,仅包含一个方法

type error interface {Error() string
}

2. 创建

import ("errors""fmt"
)func demo_1() {err := errors.New("something went wrong")if err != nil {fmt.Println("Error:", err)}
}

测试方法

func Test_demo_1(t *testing.T) {demo_1()
}

输出结果

=== RUN   Test_demo_1
Error: something went wrong
--- PASS: Test_demo_1 (0.00s)
PASS

3. 自定义错误

type MyError struct {Code    intMessage string
}func (e *MyError) Error() string {return fmt.Sprintf("code:%d \nmessage:%s", e.Code, e.Message)
}func demo_2() {err := &MyError{Code:    1,Message: "something went wrong",}fmt.Println(err)
}

测试方法

func Test_demo_2(t *testing.T) {demo_2()
}

输出结果

=== RUN   Test_demo_2
code:1 
message:something went wrong
--- PASS: Test_demo_2 (0.00s)
PASS

4. 处理错误

在自定义错误代码的基础上,实现错误处理

func demo_3(err *MyError) {if err != nil {fmt.Println("Error:", err)} else {fmt.Println("No error")}
}

测试方法

func Test_demo_3(t *testing.T) {type args struct {err *MyError}tests := []struct {name stringargs args}{{name: "error",args: args{err: &MyError{Code:    1,Message: "something went wrong",},},},{name: "no error",args: args{err: nil,},},}for _, tt := range tests {t.Run(tt.name, func(t *testing.T) {demo_3(tt.args.err)})}
}

输出结果

=== RUN   Test_demo_3
=== RUN   Test_demo_3/error
Error: code:1 
message:something went wrong
=== RUN   Test_demo_3/no_error
No error
--- PASS: Test_demo_3 (0.00s)--- PASS: Test_demo_3/error (0.00s)--- PASS: Test_demo_3/no_error (0.00s)
PASS

5. 实现Error接口

// 定义一个表示文件错误的结构体
type FileError struct {FileName stringErrMsg   string
}// 实现 error 接口的 Error() 方法
func (e *FileError) Error() string {return fmt.Sprintf("file error: %s - %s", e.FileName, e.ErrMsg)
}func demo_4() {err := &FileError{FileName: "example.txt",ErrMsg:   "failed to open file",}fmt.Println(err)
}

测试方法

func Test_demo_4(t *testing.T) {demo_4()
}

输出结果

=== RUN   Test_demo_4
file error: example.txt - failed to open file
--- PASS: Test_demo_4 (0.00s)
PASS

源码

// error_demo.go 文件
package error_demoimport ("errors""fmt"
)func demo_1() {err := errors.New("something went wrong")if err != nil {fmt.Println("Error:", err)}
}type MyError struct {Code    intMessage string
}func (e *MyError) Error() string {return fmt.Sprintf("code:%d \nmessage:%s", e.Code, e.Message)
}func demo_2() {err := &MyError{Code:    1,Message: "something went wrong",}fmt.Println(err)
}func demo_3(err *MyError) {if err != nil {fmt.Println("Error:", err)} else {fmt.Println("No error")}
}// 定义一个表示文件错误的结构体
type FileError struct {FileName stringErrMsg   string
}// 实现 error 接口的 Error() 方法
func (e *FileError) Error() string {return fmt.Sprintf("file error: %s - %s", e.FileName, e.ErrMsg)
}func demo_4() {err := &FileError{FileName: "example.txt",ErrMsg:   "failed to open file",}fmt.Println(err)
}
// error_demo_test.go 文件
package error_demoimport ("errors""testing"
)func Test_demo_1(t *testing.T) {demo_1()
}func Test_demo_2(t *testing.T) {demo_2()
}func Test_demo_3(t *testing.T) {type args struct {err *MyError}tests := []struct {name stringargs args}{{name: "error",args: args{err: &MyError{Code:    1,Message: "something went wrong",},},},{name: "no error",args: args{err: nil,},},}for _, tt := range tests {t.Run(tt.name, func(t *testing.T) {demo_3(tt.args.err)})}
}func Test_demo_4(t *testing.T) {demo_4()
}
http://www.ritt.cn/news/23108.html

相关文章:

  • 杭州免费自助建站模板最新发布的最新
  • 做网站老师宁波seo网络推广产品服务
  • 新手做淘宝哪个网站比较好免费网站安全软件大全
  • 产品经理兼职做网站报酬长沙靠谱关键词优化公司电话
  • 自己做的网站如何放进服务器免费建自己的网站
  • 网站建设需求调研太原网络营销公司
  • 020网站管理系统模板线上电商怎么做
  • 做软件网站网站内部链接优化方法
  • 网站做描本好处天津快速关键词排名
  • 性价比高的做网站公司关键词查询神器
  • 杭州协会网站建设软件制作
  • java做的网站怎么设置关闭和开启网站访问锦州网站seo
  • 肇庆市建设企业网站怎么样成都高端企业网站建设
  • 公司建网站 内部邮箱链接搜索
  • 哈尔滨制作网站多少钱希爱力双效片骗局
  • 高端定制外贸网站惠州seo收费
  • 做棋牌网站建设哪家好百度识图网页版 在线
  • 成立软件公司百度关键词seo优化
  • 网站推广策划案哪里有免费b站推广网站详情
  • 营销网站建设教程律师推广网站排名
  • 怎么健免费网站吗百度客服中心人工在线咨询
  • 网站建设公司还真有赚钱的seo人员招聘
  • 南宁做网站外包优化网站排名的方法
  • 网站建设公司如何提供客户服务百度联盟
  • 网站建设前期准备方案app怎么开发出来的
  • 怎么用网站做类似微博百度快速收录方法
  • 阜宁网站制作服务商搜索引擎营销的特点包括
  • 个人做同城网站赚钱吗seo推广公司教程
  • 一元云购网站开发网络整合营销方案ppt
  • 温州专业建站网络游戏推广怎么做