- Go Machine Learning Projects
- Xuanyi Chew
- 217字
- 2021-06-10 18:46:32
Methods
Let's say we wrote these functions, and we have defined email as before:
type email string
func check(a email) { ... }
func send(a email, msg string) { ... }
Observe that email is always the first type in the function parameters.
Calling the functions look something like this:
e := "john@smith.com"
check(e)
send(e, "Hello World")
We may want to make that into a method of the email type. We can do so as follows:
type email string
func (e email) check() { ... }
func (e email) send(msg string) { ... }
(e email) is called the receiver of the method.
Having defined the methods thus, we may then proceed to call them:
e := "john@smith.com"
e.check()
e.send("Hello World")
Observe the difference between the functions and methods. check(e) becomes e.check(). send(e, "Hello World") becomes e.send("Hello World"). What's the difference other than syntactic difference? The answer is, not much.
A method in Go is exactly the same as a function in Go, with the receiver of the method as the first parameter of the function. It is unlike methods of classes in object-oriented programming languages.
So why bother with methods? For one, it solves the expression problem quite neatly. To see how, we'll look at the feature of Go that ties everything together nicely: interfaces.
- Hands-On Intelligent Agents with OpenAI Gym
- 精通MATLAB神經網絡
- 協作機器人技術及應用
- Practical Data Wrangling
- 自動化控制工程設計
- 可編程控制器技術應用(西門子S7系列)
- 80x86/Pentium微型計算機原理及應用
- Arduino &樂高創意機器人制作教程
- MATLAB/Simulink權威指南:開發環境、程序設計、系統仿真與案例實戰
- Learning Azure Cosmos DB
- Deep Reinforcement Learning Hands-On
- Dreamweaver CS6精彩網頁制作與網站建設
- 基于神經網絡的監督和半監督學習方法與遙感圖像智能解譯
- 多媒體制作與應用
- SQL Server數據庫應用基礎(第2版)