面向对象编程对我来说最直观的就是,就是创建了一个对象,这个对象能调用各种以它为基础创建的各类方法
Newfile就是对象不过我只定义了一部分参数,文件名字让我拿出去单独使用了。
package util import ( "fmt" "os" ) type file_name struct { filename string key int loop bool } func Newfile() *file_name { return &file_name{ key: 0, loop: true, } } func (f *file_name) isExitsfile() { _, err := os.Stat(f.filename) if err == nil { fmt.Println("文件存在") } //如果文件err为空则表示文件存在 if os.IsExist(err) { fmt.Println("文件不存在") } } func (f *file_name) createfile() { fmt.Scanln(&f.filename) file, err := os.Create(f.filename) if err != nil { fmt.Println(err) } else { fmt.Println(f.filename, "已经创建") file.Close() } } func (f *file_name) deletefile() { fmt.Scanln(&f.filename) err := os.Remove(f.filename) if err != nil { fmt.Println(err) } else { fmt.Println("删除成功") } } func (f *file_name) exit() { fmt.Println("y|n") choice := "" for { fmt.Scanln(&choice) if choice == "y" || choice == "n" { break } } if choice == "y" { f.loop = false } } func (f *file_name) Mainmenu() { for { start: fmt.Print("########################################\n", "1.创建文件\n", "2.检查文件是否存在\n", "3.删除文件\n", "4.返回\n", "5.退出\n", "########################################\n") fmt.Print("请输入选项:") fmt.Scanln(&f.key) switch f.key { case 1: f.createfile() case 2: f.isExitsfile() case 3: f.deletefile() case 4: goto start case 5: f.exit() default: fmt.Println("输入错误") } if !f.loop { break } } }
package main import ( "util" ) func main() { util.Newfile().Mainmenu() }
针对,生活我不是想赢。我只是不想输!