package simpleBlog import ( "fmt" _ "github.com/go-sql-driver/mysql" ) type BlogOperations interface { Persistence() Delete() } type Blog struct { Author string Header string Content string } func (blog *Blog) Persistence() { result, err := DB.Exec("INSERT INTO blog.blog (author, header, content)VALUES (?,?,?)", blog.Author, blog.Header, blog.Content) if nil != err { fmt.Println(result, err) } fmt.Println("persistence", blog) } func (blog *Blog) Delete() { DB.Exec("DELETE FROM blog.blog WHERE header=?", blog.Header) fmt.Println("delete", blog) }
OO三要素:类=数据+方法
后来想想C也能实现OO编程
只要相应的函数传入一个struct的指针….
后来又想想…Python不就是这么实现的么…有一个内置的this指针(虽然觉得是奇技淫巧…)
这么看来C也能实现OO编程,技巧在于传入一个隐式指针指向一个数据结构
那么再回想一下OO三要素,类=数据+方法
也就是通过this/struct指针来实现数据和方法的关联