d省略参数名

原文

import std.conv;

class Foo
{
  int i;

  //   v=== 推导类型
  this(int)//(T i)
  {
    this.i = i;//.to!int;
  }

  string test()
  {
    return i.to!string;
  }
}

void main()
{
  long bar = 42;
  auto foo = new Foo(bar);
  assert(foo.test == "42"); //错误
//不能传递`长`至`整`.
}

根本不需要参数名,因为这只是一个没有实现声明,因此不需要参数名.
正如Ali所说,未使用参数(即在模板特化,虚函数覆盖,用于重载解析目的的虚参数等)


TYPE foo(TYPE)() { return 42; }
//需要函数参数列表`()`

TYPE foo(TYPE)() {
  int r = 42;
  return r;  //不能转换`整`至`短`
}

void main() {
  foo!short();
}
struct S(TYPE) {
  TYPE foo(TYPE) {//这是函数,不是模板,类型已知,省略参数名
    return 42;
  }

  // 函数模板
  TYPE bar(TYPE2)() {
    // ...
  }
}
posted @   zjh6  阅读(13)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示