首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用下标给string类型赋值之后,cout输出变量为空的问题。

今天写创建文件夹的时候,怎么创建都不会,反复修改,确定错误是出在了string类型的变量上面。...看下面代码 //这个一个函数中的代码,函数参数是string fileurl_s int len = fileurl_s.length(); std::string...明明可以正常输出fileurl_s_cy[i],但是无法正常输出fileurl_s_cy,本以为是’\0’的问题,发现加上也无济于事,fileurl_s_cy整体长度依旧是0 我可以使用std::stringfileurl_s_cy...= “www/ccccc” 这种形式正常创建文件夹,但就是无法使用下标的赋值方式 经过一番百度,得知是因为声明fileurl_s_cy的时候没有开辟空间,所以无法使用 奇怪的是输出fileurl_s_cy...解决方法如下: 声明的时候改为std::string fileurl_s_cy(len,’\0’); 这样就可以正常使用下标赋值,输出以及整体输出 怕忘记,记录与此。

5K40

作为JavaScript的“超集”,感受一下TypeScript 的那些黑魔法

1functionlog(someArg: any) { 2 sendDataToServer(someArg); 3} ▼▼▼ 在默认情况下,null和undefined可以被赋值给TypeScript...1let foo = undefined; 2foo = null; // 不可以 假设有一个接口Member,如下所示。...: number 4} 并不是所有的Member都会提供年龄,所以age是一个可选属性,也就是说age的值可能为undefined。 undefined是“万恶之源”,它通常会导致运行时错误。...一个非null的断言实质上意味着你在告诉编译器“我知道它不是null,但是请让我使用它,即使它不是null”。 ◆ 明确赋值断言操作符 TypeScript将会对类中未初始化的属性抛出错误。...= 42; 9 } 10} 你可以使用明确赋值断言,在属性名后加后缀,来告诉TypeScript你已经在其他地方(不是在构造器中)对它进行了初始化。

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    TypeScript-null和undefined

    赋值给任意类型let value1: null;let value2: undefined;let value3: number;value3 = value1;value3 = value2;默认情况下..., 如果不想把 null 和 undefined 赋值给其它的类型或者不想让 null 和 undefined 相互赋值, 那么我们就可以修改 tsconfig.json 开启 strictNullChecks...图片开启了之后再次赋值效果如下:图片如果开启了 strictNullChecks, 还想把 null 和 undefined 赋值给其它的类型那么就必须在声明的时候使用 联合类型let value: (...number | null | undefined);value = null;value = undefined;console.log(value);对于 可选属性 和 可选参数 而言, 如果开启了...大家点赞支持一下哟~ 我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表图片

    21410

    TypeScript类型声明

    ;console.log(booleanValue)//trueany在使用过程中就像一个潘多拉魔盒,即使使用了断言,也丧失了在静态类型检查阶段发现错误的可能性。...类型,any类型可以赋值给任意类型unknown,never都不允许执行变量的方法以及访问内部属性在unknown没有被断言或细化到一个确切类型之前,unknown不可以赋值给其它类型,除了它自己和any...具有以下特点:never类型是所有类型的子类型,即never类型可以赋值给任何类型。其他任何类型均不是never类型的子类型,即其他类型均不可赋值给never类型,除了never本身。...即使any类型也不可以赋值给never类型。返回类型为never的函数中,其终点必须是不可执行的,例如函数过程中抛出了错误或者存在死循环。...:() => never我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    37330

    TypeScript基础(一)基本类型与类型运算

    基本类型 number:数字 string:字符串 boolean:布尔 数组 object: 对象 null 和 undefined null和undefined是所有其他类型的子类型,它们可以赋值给其他类型...通过添加strictNullChecks:true,可以获得更严格的空类型检查,null和undefined只能赋值给自身。...,并且数组中每一项的类型确定 let person: [string, number] = ["John", 25]; any类型: any类型可以绕过类型检查,因此,any类型的数据可以赋值给任意类型...可选属性(Optional Properties) 使用 ? 运算符将属性标记为可选的。表示该属性可以存在,也可以不存在。...我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    24030

    TypeScript手记(二)

    像其它语言里一样,我们使用 string 表示文本数据类型。和 JavaScript 一样,可以使用双引号(")或单引号(')表示字符串。...那么我们可以使用 any 类型来标记这些变量; 在对现有代码进行改写的时候,any 类型是十分有用的,它允许你在编译时可选择地包含或移除类型检查。...就是说你可以把 null 和 undefined 赋值给 number 类型的变量。...never 类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是 never 的子类型或可以赋值给never 类型(除了 never 本身之外)。即使 any 也不可以赋值给 never。...通常这会发生在你清楚地知道一个实体具有比它现有类型更确切的类型。 通过类型断言这种方式可以告诉编译器,“相信我,我知道自己在干什么”。类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。

    54720

    TypeScript 官方手册翻译计划【二】:普通类型

    即使没有给参数添加类型注解,TypeScript 也会检查你传递的参数的个数是否正确 返回值类型注解 你也可以给返回值添加类型注解。...因此,在你读取一个可选属性的时候,你需要在使用它之前检查它是否为 undefined。 function printName(obj: { first: string; last?...禁用 strictNullChecks 禁用 strictNullChecks 选项之后,你仍然可以正常访问可能为 null 和 undefined 的值,这两个值也可以被赋值给任何一种类型。...就和使用可选属性之前先检查它是否为 undefined 一样,我们可以使用类型收窄去检查某个值是否可能为 null: function doSomething(x: string | null) {...toFixed()); } 和其它的类型断言一样,非空值断言也不会改变代码的运行时行为,所以切记:仅在你确定某个值不可能为 null 或者 undefined 的时候,才去使用 !。

    2.3K20

    编写TypeScript工具类型,你需要知道的知识

    这种类型应该如何定义?如果选择为 id 字段提供添加可选修饰符的话,那就太不明智了。因为在删除用户时,即使不填写 id 属性也不会报错,这不是我们想要的结果。...“"user"”的参数不能赋给类型“Level”的参数 索引类型 语法: T[K] ,使用索引类型,编译器就能够检查使用动态属性名的代码。...X : Y ,若 T 能够赋值给 U ,那么类型是 X ,否则为 Y 。条件类型以条件表达式推断类型关系,选择其中一个分支。...T中剔除所有可以赋值给U的属性,然后构造一个类型。...| number | (() => void), Function>; // string | number Extract 从类型T中提取所有可以赋值给U的类型,然后构造一个类型。

    1.4K50

    TypeScript 高级类型总结(含代码案例)

    在下面的代码中,我用的是 T(这个名称随你决定)这个名字,然后使用不同的类型注释调用了两次 showType 函数,因为它是可以重用的。...要想使属性是可选的,必须用到 Partial 关键字,并传入 PartialType 类型作为参数。现在所有字段都变成了可选的。...number: }' is missing the following properties from type 'Required': firstName, lastName 即使在之前先将它们设为可选的...>) { args.id = 4 console.log(args) } showType({ id: 1, name: "Doe" }) // Error: 无法给'id'重新赋值,因为它是只读属性...在代码中用 Readonly 来使 ReadonlyType 的属性不可被重新赋值。如果你一定要为这些字段赋值的话,将会引发错误。

    1.3K10

    TypeScript 黑魔法之编译选项设置

    functionlog(someArg: any) { sendDataToServer(someArg); } strictNullChecks 在默认情况下,null和undefined可以被赋值给...let foo = undefined; foo = null; // 不可以 假设有一个接口Member,如下所示。...: number } 并不是所有的Member都会提供年龄,所以age是一个可选属性,也就是说age的值可能为undefined。 undefined是“万恶之源”,它通常会导致运行时错误。...一个非null的断言实质上意味着你在告诉编译器“我知道它不是null,但是请让我使用它,即使它不是null”。 明确赋值断言操作符 TypeScript将会对类中未初始化的属性抛出错误。...} 你可以使用明确赋值断言,在属性名后加后缀,来告诉TypeScript你已经在其他地方(不是在构造器中)对它进行了初始化。

    86940

    TypeScript基础——基本类型检查

    举个栗子: 变量 //我们定义变量的时候,肯定是知道这个变量是存放什么类型的数据 let name:string = "法医"; 一旦给 name 赋值其它类型,立马会提示错误 举个栗子: 函数参数和返回值...null和undefined需要重点说一下,null和undefined是所有其他类型的子类型,它们可以赋值给其它类型,但是又会发生隐患,下面方法调用都会报错,由于约束了是string和number,...,null和undefined就不能赋值给其它的了 3....,因为会类型推导出来 never类型:通常用于约束函数返回值,表示该函数永远不可能结束 function thorwError(msg:string) { throw new Error(msg...,否则报错 tupleType = ["法医",5]; any类型:any类型可以绕过类型检查,因此any类型可以赋值给任意类型,但肯定是有隐患的,因为它无法使用TS提供的保护机制,所以不建议随意的使用

    1.3K10

    不废话的将ts一篇文章写完

    ; const nul = null; 一旦做了类型限制,后面是不可以进行非该类型赋值的,比如(其他同理): 下面是一个错误示例 ⚠️ let stre: string = "stre" stre =...,数组里面不可以进行非该类型的赋值,比如(其他同理): 下面是一个错误示例 ⚠️ let numArr: number[] = [1,2,3,"jim"] // Error Type 'string'...类型断言 (当我不知道这个变量是什么类型,但是我希望他作为一个我预期的类型进行处理的时候,可以使用断言) function func(params: string | number){ params.toString...使用s和n 是为了我为了演示效果使用的string 和number * (params:[S,N]) 入参 是一个数组,数组有两个值,和我前面的泛型保持一致 * [N,S] 函数返回的值 是类型转换之后一个结果...[1],params[0]] // 此时的0 和1 的位置就是固定的,因为N无法赋值给S,S也无法赋值给N } changePlaces(["tom",0]) 编译为js结果 function changePlaces

    10210

    TypeScript 初学者入门学习笔记(一)

    编译时即使报错,还是会生成编译结果,仍然可以使用编译之后的文件,若想在报错时终止 js文件的生成,可以在 tsconfig.json 中配置 noEmitOnError 即可。...15 let str: string = 'abc' var a: null = null var b: undefined = undefined // 编译通过 使用构造函数创造的对象不是原始数据类型...也就是说 undefined 类型的变量,可以赋值给所有类型的变量,包括 void 类型: let num: number = undefined; let u: undefined; let str...: string = u; let vo: void= u; // 编译通过 而 void 类型的变量不能赋值给其他类型的变量,只能赋值给 void 类型: let u: void; let num:...例二:只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值时: interface Person { readonly id: number; name: string;

    1.8K20

    TSJS中的特殊符号用法(?!)、?.、??、??

    = 空值赋值运算符 和空值合并运算符??类似(可常量、可变量)。 当??=左侧的值为null、undefined的时候,会将右侧的值赋值给左侧变量。...= '111' ;     // 111 仅当值为 null 或 undefined 时,此赋值运算符才会赋值(与上面的非空运算符相关)。 TS特殊符号用法 属性或参数中使用 ?...表示该属性或参数为可选项 function test(a:string,b?:string){     // TODO } interface Test {     a:string     b?...就省去了好多麻烦) 当其中一链为null或者undefined时就返回undefined,这样即使中间缺少一个属性也不会报错, 变量后使用 !...: 表示类型推断排除null、undefined let a:Recordstring, any> = {} let b:string = a['m']! 属性或参数中使用 !

    2.3K10

    TypeScript入门第一天,所有类型+基础用法+接口使用

    let decLiteral: number = 6; // 十进制 字符串类型 string 表示字符串,使用单引号(')或双引号(")来表示字符串类型。...world'; // 越界的元素会使用联合类型替代,可以赋值给(string | number)类型 枚举 enum 枚举类型用于定义数值集合,可以为一组数值赋予友好的名字。...undefined undefined 用于初始化变量为一个未定义的值 never never never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。...: number; } //函数传入的参数对象中只有部分属性赋值了,这里只给接口来定义的color赋值了 function createSquare(config: SquareConfig...赋值也不可以 //想赋值的话可以用类型断言重写 A = B as number[];

    64900
    领券