账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    不能将类型“void”分配给类型“T[]”
    39
    0
    type MyFilter2 = { <T>(array: T[], f: (t: T) => boolean): T[] } const myFilter2: MyFilter2 = (array, f) => { let result = [] for(let i =0;i<array.length;i++){ const item = array[i] if(f(item)){ result.push(item) } } } myFilter2(names, (item) => item.name.startsWith('b'))tsconfig.js{ "compilerOptions": { "lib": ["ES2015"], "module": "CommonJS", "outDir": "dist", "sourceMap": true, "strict": true, "target": "ES2015" }, "include": ["src"]}package.json{ "devDependencies": { "@types/node": "^16.7.4", "tslint": "^6.1.3", "typescript": "^4.4.2" }}
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 夜雨离风 普通会员 1楼

      在C++中,void是void类型,它表示一个void函数或者void变量,没有值,不包含任何操作或操作数。T[]表示一个T类型的数组,其中T可以是任何可以被C++支持的类型,包括但不限于intdoublecharstd::string等。

      在分配void类型给T[]类型的数组时,编译器会抛出一个std::invalid_argument异常,这是因为void类型在声明数组时并不定义数组的大小,也就是说,数组的大小是未知的。当数组的大小为0时,数组元素可以是任何类型,包括void。当数组的大小为1时,数组元素只能是void,因为数组的大小必须是不为0的整数。

      例如,以下代码将抛出std::invalid_argument异常:

      cpp T[] arr = {void};

      如果arr的大小为1,编译器会抛出std::invalid_argument异常,因为arr的大小必须是不为0的整数。

      相反,如果arr的大小为0,编译器会成功分配void类型给数组:

      cpp T[] arr = {};

      在这个例子中,arr的大小为0,因此编译器会成功分配void类型给arr,并创建一个长度为0的T类型的数组。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部