前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VEX语法指南

VEX语法指南

作者头像
南郭先生
发布2022-04-25 13:57:54
3870
发布2022-04-25 13:57:54
举报
文章被收录于专栏:Google DartGoogle Dart

1.1自定义函数

函数定义与C类似,包含返回类型、函数名、参数列表和代码块。

当参数列表中参数的类型相同可以使用逗号分隔,而无需单独声明类型,其它类型参数使用分号分隔。

代码语言:javascript
复制
int test(int a, b; string c) {
    if (a > b) {
        printf(c);
    }
}

函数支持重载,参数类型或数量不同、返回类型不同都将得到支持。

代码语言:javascript
复制
void print(basis b) { 
    printf("basis: { i: %s, j: %s, k: %s }\n", b.i, b.j, b.k); 
} 
void print(matrix m) { 
    printf("matrix: %s\n", m); 
} 
void print(bases b) { 
    printf("bases <%s> {\n", b.description); 
    printf("  "); print(b.m); 
    printf("  "); print(b.n); 
    printf("  "); print(b.o); 
    printf("}\n"); 
} 

basis rotate(basis b; vector axis; float amount) { 
    matrix m = 1; 
    rotate(m, amount, axis); 
    basis result = b; 
    result.i *= m; 
    result.j *= m; 
    result.k *= m; 
    return result; 
} 
void rotate(basis b; vector axis; float amount) { 
    b = rotate(b, axis, amount); 
} 

也可以对函数使用function关键字以避免歧义。

代码语言:javascript
复制
function int test(int a, b; string c) {
    if (a > b) {
        printf(c);
    }
}

要点:

  • 自定义函数必需在使用前声明。
  • 自定义函数由编译器内联,故不支持递归,可使用着色器调用替代。
  • 可使用const关键字声明参数为只读。可通过export关键字将参数声明为输出参数。
  • 一个函数可以有多个return语句。
  • 可以访问全局变量,建议将全局变量以参数的形式传入自定义函数中。
  • 支持嵌套函数。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/04/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1自定义函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档