Open Q1mi opened 2 years ago
package main
import (
"fmt"
"os"
"time"
)
// 接口
type Logger interface {
consoleLog() // 终端
fileLog() // 文件
}
// 用户结构体
type User struct {
username string
password string
}
// User实现方法
func (u User) consoleLog() {
t := time.Now()
fmt.Printf("用户创建成功!用户名为:%s", u.username)
fmt.Printf("用户密码是:%s\n", u.password)
fmt.Printf("创建完成时间:%d-%d-%d %d:%d:%d\n", t.Year(), t.Month(), t.Day(),
t.Hour(), t.Minute(), t.Second())
}
func (u User) fileLog() {
t := time.Now()
file, err := os.OpenFile("./"+u.username+".txt", os.O_RDWR|os.O_CREATE, 0766)
if err != nil {
fmt.Println(err)
}
data := "用户创建成功! 用户名为:" + fmt.Sprintf("%s\n", u.username) + "密码是:" + u.password + "\n" + fmt.Sprintf("创建完成时间:%d-%d-%d %d:%d:%d\n", t.Year(),
t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second())
_, _ = file.WriteString(data)
_ = file.Close()
}
// User中的字段初始化
func newUser(username, password string) User {
return User{
username: username,
password: password,
}
}
// 创建用户对象
func createUser() {
var (
username string
password string
)
fmt.Print("请输入用户名:")
_, err := fmt.Scan(&username)
fmt.Print("请输入一个密码:")
_, err = fmt.Scan(&password)
if err != nil {
fmt.Println("输入错误!!ERROR:", err)
}
u := newUser(username, password)
u.consoleLog()
u.fileLog()
}
// 主函数
func main() {
createUser()
}
生成的文件是放在根目录下的也就是$GOPATH/src
目录下的
https://www.liwenzhou.com/posts/Go/12-interface/
李文周的Blog Go语言接口 interface 面向接口编程