美文网首页V语言
V语言学习笔记-12方法

V语言学习笔记-12方法

作者: lydiandy | 来源:发表于2020-05-19 16:18 被阅读0次

方法定义

跟go一样,在函数名前面加接收者,就是方法

接收者默认不可变,如果要修改接收者,要加上mut

结构体的方法,可以定义在同一个模块目录的不同源文件中

struct User {
    name string
    age int
    
}

fn (u User) get_name() string {
    return u.name
}

fn (mut u User) set_name(name string) {
    u.name=name
}

方法链式调用

结构体方法支持链式调用

按照目前的测试结果,&取地址符号,在函数返回值上加就可以了,不需要在接收者上也添加

module main

struct DB {
mut:
    sql string
}

fn new() &DB { //&表示取地址,引用
    return &DB {
        sql: ''
    }
}
fn (mut db DB)table(name string) &DB { //&表示取地址,引用
    db.sql+=name
    return db
}
fn (mut db DB)where(condition string) &DB {
    db.sql+=condition
    return db
}
fn (mut db DB)first() &DB {
    db.sql+='limit 1'
    return db
}

fn main() {
    db:=new()
  //链式调用
    db.table('select * from user ').where('where id=1 ').first()
    println(db.sql) //输出:select * from user where id=1 limit 1
}

相关文章

  • V语言学习笔记-12方法

    方法定义 跟go一样,在函数名前面加接收者,就是方法 接收者默认不可变,如果要修改接收者,要加上mut 结构体的方...

  • V语言学习笔记-总览

    最新版本学习笔记:github电子书 利用闲暇时间,体验了V语言,边看边动手记录,所以有了这个V语言学习笔记 写在...

  • Javascript笔记-string

    javascript学习笔记 String方法 字符方法 charAt():取出特定位置的字符sample: v...

  • V语言学习笔记-27单个V文件

    单个V文件 如果只是想写一个简单的程序,源代码可以放在单个V文件中,那么可以有更简单的写法 可以直接省略主模块,主...

  • TensorFlow学习笔记:Inception_v3源码分析

    TensorFlow学习笔记:Retrain Inception_v3(一) TensorFlow学习笔记:Ret...

  • vs笔记

    # 学习目标 1、 掌握学习编程的方法 2、 了解C#语言的由来、特点、开发前景 3、 理解.NET平台、会安装V...

  • Vue 2.5 学习

    Vue 课程学习笔记 基础部分 方法创建在 method 的大括号里面 可以将 v-on:click 简写为 @c...

  • V语言学习笔记-01模块

    V语言是一个非常模块化的语言 模块是代码重用,代码分发的基本单元 程序由模块组成,函数,结构体,常量,枚举等都要在...

  • V语言学习笔记-13接口

    接口定义 使用interface关键字定义接口,跟go一样 默认是模块级别,使用pub变为公共级别 接口命名跟结构...

  • V语言学习笔记-03变量

    V是静态类型语言,每一个变量都有对应类型 声明和赋值 V语言中只有唯一的一种变量声明和赋值方式 := 并且声明和赋...

网友评论

    本文标题:V语言学习笔记-12方法

    本文链接:https://www.haomeiwen.com/subject/gsvbohtx.html