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

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

今天写创建文件夹的时候,怎么创建都不会,反复修改,确定错误是出在了string类型的变量上面。...,以及子文件夹,根据参数来做,有则略过,无则创建 但是我发现根本创建不了文件夹 我试着输出循环中的fileurl_s_cy[i],能够正常输出我想要的字符 但是当我输出fileurl_s_cy的时候出了问题...,fileurl_s_cy整体长度依旧是0 我可以使用std::stringfileurl_s_cy = “www/ccccc” 这种形式正常创建文件夹,但就是无法使用下标的赋值方式 经过一番百度,得知是因为声明...fileurl_s_cy的时候没有开辟空间,所以无法使用 奇怪的是输出fileurl_s_cy[i]居然也不报错。...解决方法如下: 声明的时候改为std::string fileurl_s_cy(len,’\0’); 这样就可以正常使用下标赋值,输出以及整体输出 怕忘记,记录与此。

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

    swift4.0语法杂记(精简版)

    五、可选类型 在Objective-C开发中,如果一个变量暂时不会使用到,可以将它赋值为0或者赋值为空,而在swift中,nil是一个特殊的类型,如果它和真实类型不匹配是不能进行赋值的。...它将变量赋值给一个临时变量,在这个操作中会做两步操作:首先判断变量是否有值,如果没有值,则直接不执行大括号里面的内容;如果有值,系统会自动将变量进行解包,并且将解包后的结果,赋值给临时变量。...//对象的属性必须赋值,不赋值会报错的哦 } let p = Person() 2、给类的属性赋值 可以直接赋值,也可以通过KVC进行赋值 p.age = 10 p.name = "llx" if let...在swift中,用到了大量的结构体,比如说基本的数据类型都是结构体而不是类。这意味着它们被赋值给新的常量或者变量,或者被传入函数或方法中时,值会被拷贝。...在 Swift 4 中,做取子串操作的结果是一个 Substring 类型,它无法直接赋值给需要 String 类型的地方。

    15.4K90

    Swift 字符串和字符

    目录 字符串字面量 初始化空字符串 字符串可变性 字符串是值类型 使用字符(Characters) 计算字符数量 连接字符串和字符 字符串插值 比较字符串 大写和小写字符串 介绍 Swift 字符串通过...,实现了多种类型可变性操作的统一。...字符串是值类型 Swift 的 String 类型是值类型。如果创建了一个新的字符串值,那么当其进行常量、变量赋值操作或在函数/方法中传递时,会进行值拷贝。...和 OC 中的 NSString 不同,在 OC 中创建了一个 NSString 实例,并将其传递给一个函数/方法,或者赋给一个变量,永远都是传递或赋值同一个NSString 实例的一个引用。...你插值字符串中写在括号中的表达式不能包含非转义双引号 (") 和反斜杠 (\), 并且不能包含回车或换行符。 9.

    79210

    Swift基础语法(一)

    在Swift中,语句结束可以不加分号。但是如果同一行有多个语句,仍然要加分号,不过我们不建议一行多句,我们提倡一行一句的代码风格。...var d: Int = 8 如果在定义一个标识符的时候有直接进行赋值,那么标识符后面 的类型可以省略: var d = 8 因为Swift有类型推导,会自动根据后面的赋值来决定前面的标识符的数据类型...在Swift中,nil是一个特殊的类型,它与Int、String一样,都是一种类型。并且Swift语言又是一种强类型语言,因此不能直接将nil赋值给其他类型的数据。...= 8 // 有值 b = nil // nil 可选类型的使用 给可选类型赋值: // 定义可选类型 var name : String?...= nil //给可选类型赋值 name = 123 // ❌错误写法,可选类型也是有类型校验的,这里只能复制字符串,赋值其他类型都会报错 name = "norman" // 正确 // 打印结果

    4.3K30

    Swift基础语法简化版

    var d: Int = 8 如果在定义一个标识符的时候有直接进行赋值,那么标识符后面 的类型可以省略: var d = 8 因为Swift有类型推导,会自动根据后面的赋值来决定前面的标识符的数据类型...在Swift中,nil是一个特殊的类型,它与Int、String一样,都是一种类型。并且Swift语言又是一种强类型语言,因此不能直接将nil赋值给其他类型的数据。...= 8 // 有值 b = nil // nil 可选类型的使用 给可选类型赋值: // 定义可选类型 var name : String?...= nil //给可选类型赋值 name = 123 // ❌错误写法,可选类型也是有类型校验的,这里只能复制字符串,赋值其他类型都会报错 name = "norman" // 正确 // 打印结果...常量 = 可选型】语句的作用是:如果可选型的值不是nil,那么就将可选型的真实值传给常量,并且执行花括号{}里面的语句;如果可选型的值是nil,那么【常量 = 可选型】这个条件就不成立(因为不能直接给一个非可选型变量赋值为

    3.8K50

    Swift基础语法(三)函数

    Swift的函数在定义和调用上都提供了更多的更方便的可操作空间,比如参数标签、可变参数,并且函数类型的使用使得任意的普通函数就有block的特征,接下来认识Swift中函数的使用。...) 返回(),也就是直接返回空元组 也可以不写返回值就表示没有返回值 如果整个函数体只是简单的单一表达式,可以不写return来返回,编译器会自动帮我们增加return 形参默认是let,也只能是...,在外部调用时仍然要写参数名称,而不能直接写参数 1.3.2 默认参数 可以在定义函数时添加默认参数时,这样在调用函数时可以不传入这个参数的值 演示代码 func check(name: String...,这样就是可变参数了 在函数内部把这个参数看做数组来处理 注意: 一个函数最多只能有1个可变参数 紧跟在可变参数后面的参数不能省略参数标签/参数名称,否则无法区分这个值是哪个参数的 2、函数内修改外部变量的值...) 说明: 定义一个函数类型的变量,就可以将这个函数赋值给这个变量,之后通过这个变量来调用函数 通过函数变量调用时不需要参数标签和参数名称,直接传值 我这里为了更方便的说明,所以把定义变量和赋值参数分开写了

    59430

    【读书笔记】The Swift Programming Language (Swift 4.0.3)

    ,直接一个普通 var 变量使用即可. * 参数默认是 let 不可变类型,不允许修改 Closures * function type 不包含 label 部分 --> 传递function时,其label...Methods * 结构体实例中,方法是否能够修改属性,也受实例本身的可变性的影响. * 结构体或枚举等值类型,允许在实例方法内,直接给 self 赋值,完整替换. * 枚举类型的相关操作,都可以封装在枚举类型自身...在调用 super.init 之前,不能调用任何实例方法,因为对象还没有效初始化. * 用 closure 指定默认值和属性的get/set 方法的区别在于 声明有个等号(=),说明前者是个赋值操作..... * 赋值操作中,如果左侧是要赋值给 optional 实例的某个属性,则会先 unwrap optional 实例,如果不为nil,才会计算右侧的表达式. * 链式语法中,有一个 optional...类似. * 数组具体化类型声明为 Any / AnyObject 时,数组内可同时存放多种类型不兼容的实例.

    1.5K100

    给 Java 开发者的 Kotlin 快速上手教程(Kotlin for Java Developers)v0.1

    其实,Swift和Kotlin还挺相似的,有一篇Swift is like Kotlin对这两种语言做过简单的对比。...} val大致相当于Java里的final,C/C++里的const,Swift里的let,ES6中的const, 使用val定义的是不可重新赋值的变量。...var 定义可重复赋值(读写)的变量使用var关键字。var定义的变量就是大部分编程语言里的普通变量,可读写,可重新赋值,Swift也是使用var。 ES6中用的是 let。注意哦。...List fun readOnlyList() { val list = listOf("a", "b", "c") // list.add("d") 错误:不能修改元素 } 不可变Map...(Java 的数组可变;泛型的协变,逆变) // 不允许将Array赋值给Array // Kotlin还有ByteArray, ShortArray, IntArray等类型

    1.1K30

    Swift学习总结

    2、溢出操作符——&+,&-,&*,Swift的哲学是触发陷阱比潜在安全漏洞要好 3、字符串支持插值\(var)占位符,支持复合赋值操作符+=连接字符串 4、swift必须手动转换类型,不会自动类型转换...实例变量不是相同的类型——如果你有一个String变量,就无法在不展开可空实例的情况下将String?的值赋予给这个变量。...计算属性的类型必须显式声明 针对objc的kvo,swift提供一种特性——属性观察,但计算属性不能用。...在初始化方法中允许给常量赋值,其它方法则不允许。 16、初始化增加了两个概念:指定初始化和便捷初始化,便捷初始化需要在init前加上关键字convenience。...但是声明为常量的引用类型实例的属性却可以被修改。 建议不要在值类型内使用引用类型,确实需要再结构体内使用引用类型,最好使用不可变的实例。

    3K20

    窥探Swift之数组与字典

    Swift也不例外,Swift中的数组使用起来还是比较人性化的. 1.数组的声明与创建 在聊Swift中的Array声明创建之前,我想聊一下ObjC中数组的声明与创建,下方是ObjC中不可变数组和可变数组的创建方式...下方给出了数组的三种定义的方式。后两种给数组元素制定了数据类型,表示该数组中只能够存储Int类型的值,如果你往里存入了其他的值,对不起,编译器会报错的。 ?...在Swift的数组中,如果在声明数组时没有指定数组中元素的数据类型,那么数组中是可以存放不同数据类型的数据的。...(4) 增加元素 往已有的可变字典中增加元素就简单多了,直接通过key就可以给value赋值。在可变字典中,如果key已经存在,那么就变成上面的修改字典的值了。...可以这么理解,通过key给value赋值时,如果key存在,就覆盖原有的键值对,如果不存在就添加。下方就是往字典中进行添加元素的语句: ?

    1.9K90

    给 Java 开发者的 Kotlin 快速上手教程(Kotlin for Java Developers)v0.1

    其实,Swift和Kotlin还挺相似的,有一篇Swift is like Kotlin对这两种语言做过简单的对比。...val大致相当于Java里的final,C/C++里的const,Swift里的let,ES6中的const, 使用val定义的是不可重新赋值的变量。...var 定义可重复赋值(读写)的变量使用var关键字。var定义的变量就是大部分编程语言里的普通变量,可读写,可重新赋值,Swift也是使用var。 ES6中用的是 let。注意哦。...List fun readOnlyList() { val list = listOf("a", "b", "c") // list.add("d") 错误:不能修改元素} 不可变Map...(Java 的数组可变;泛型的协变,逆变)// 不允许将Array赋值给Array// Kotlin还有ByteArray, ShortArray, IntArray等类型fun

    1.7K30

    Swift基础语法(二)

    在Swift中,函数参数是可以变化的,可以接受不确定数量的参数 可变参数必须具备相同的类型 可以通过在参数类型后面加入 ......自动闭包不接收任何的参数,被调用时会返回被包装在其中的表达式的值。 在形式参数的类型之前加上 @autoclosure 关键字标识这是一个逃逸闭包。...而在Swift中,枚举是更加灵活的,第一,你不必给每一个枚举成员提供一个值;第二,如果需要给枚举成员提供值,那么可以提供的值类型包括字符、字符串、整型值、浮点值等。...而在Swift中,枚举是更加灵活的,第一,你不必给每一个枚举成员提供一个值;第二,如果需要给枚举成员提供值,那么可以提供的值类型包括字符、字符串、整型值、浮点值等。...Swift中的字符串String、字典Dictionary、数组Array类型,是作为结构体来实现的,这意味着,当String、Dictionary、Array类型的实例被赋值到一个新的常量或者变量,

    2.2K20

    从java到JavaScript(2):对比JavaGoSwiftRust看Dart

    一个 final 变量只能赋值一次;一个 const 变量是编译时常量。基本类型Dart中所有的类都是Object的子类。int和double是num的子类。没有float类型。...所有函数都返回一个值,如果没有指定返回值,则 默认把语句 return null; 作为函数的最后一个语句执行。可以把方法当做参数调用另一个方法。方法也可以赋值给一个变量操作符??...——回顾jquery的链式调用,end()as、 is、 和 is!,类型判定操作符as 类型转换is 如果对象是指定的类型返回 Trueis!...具体参看APIMap的Key不能有重复的如果使用int类型作为key,取值的时候优先使用key匹配,然后是下标。...let a = 10常量声明定义常量名称和初始化表达式值之间的不可变绑定;设置常量值后,无法更改。

    94910

    Swift 中 key paths 的能力

    值得庆幸的是,Swift不断获取越来越多的更具动态性的功能,同时还一直把它的关注点放在代码的类型安全上。其中的一个特性就是KeyPath。...ReferenceWritableKeyPath: 只能与引用类型(例如类的实例)一起使用,并为任何可变属性提供读写访问权限。...在很多不同的代码中,我们常常可以见到一些像下面的代码一样的列子 - 我们通过这段代码来加载一系列的事项,然后在ListViewController中去渲染它们,然后当加载操作完成后,我们会简单的将加载的事项赋值给视图控制器中的属性...既然所有上面我们做的事情都是获取传递给我们闭包的值,并将它赋值给视图控制器中的属性 - 那么如果我们真的能够将属性的setter作为函数传递,会不会很酷呢?...给定一个对象,以及给这个对象设置关键路径,我们将会自动将捕获的对象作为弱引用类型,一旦我们的函数被调用,我们就会给匹配关键路径的属性赋值。

    2.5K20

    Swift5.7 扩展不透明类型(some)到泛型参数

    不能用于函数类型的参数值除了别名和函数类型中参数值这两个限制。...还有2个场景限制使用:可变泛型和函数类型的参数。可变泛型不透明类型不能在可变参数中使用。比如下例中的可变参数 P......,不能使用some类型:func acceptLots(_: some P...)这个限制之所以存在,是因为如果 Swift 获得可变泛型,则当前提议所实现的效果就会不成立。...然后我们再按正常使用调用 f(), 把f()的结果赋值给fn, 例如:let fn = f()fn(/* 这里应该怎么构造函数中的值?...总结通过当前提议 SE-0341,你应当知道:Swift5.7 通过运用 some 到泛型参数类型,是为了去除泛型模块声明的冗余表达;some 对应的是与之等价的泛型模版表达式;内部通过类型推断,确定真实的不透明参数类型所对应的类型

    2.9K141

    Swift学习:可选型的使用

    不能把一个可选型便量赋值给非可选型的变量, 如:let tempValue = nil //报错 可选型数据一般都是可变的,所以一般情况下,可选型的数据也通常是变量 声明一个可选型的时候,必须是添加?...,swift不能隐式的自动推断可选型 代码示例1: //swift不能用同类中的一个特殊值代表无或者没有,nil代表没有,但是却不能直接使用,如下: var errorCode :Int = 404 errorCode...赋值 //??是空和并运算符 let message3 = errorMessage ?? "no error" ---- 第五部分:隐式可选型 区别于显式可选型的创建:类型+?...隐式可选型变量使用时,相当于其后面自带了一个感叹号,可以直接赋值给一个非可选型变量,但是隐式可选型依然保持可选型的特性,可以被赋值为nil,这就体现出来隐式可选类型的优点,即可用被赋值为nil,也可以不用每次显式的解包...非可选型的变量或者常量不可能赋值为nil,所以不能使用:notOptioalValue != nil,判断是否nil。这是可选型和非可选型数据的一个明显区别

    1.1K50

    Swift 中 key paths 的能力

    值得庆幸的是,Swift 不断获取越来越多的更具动态性的功能,同时还一直把它的关注点放在代码的类型安全上。其中的一个特性就是 KeyPath。...ReferenceWritableKeyPath: 只能与引用类型(例如类的实例)一起使用,并为任何可变属性提供读写访问权限。...在很多不同的代码中,我们常常可以见到一些像下面的代码一样的列子 - 我们通过这段代码来加载一系列的事项,然后在 ListViewController 中去渲染它们,然后当加载操作完成后,我们会简单的将加载的事项赋值给视图控制器中的属性...既然所有上面我们做的事情都是获取传递给我们闭包的值,并将它赋值给视图控制器中的属性 - 那么如果我们真的能够将属性的 setter 作为函数传递,会不会很酷呢?...给定一个对象,以及给这个对象设置关键路径,我们将会自动将捕获的对象作为弱引用类型,一旦我们的函数被调用,我们就会给匹配关键路径的属性赋值。

    1.6K10

    swift底层探索 06 - 指针简单使用swift底层探索 06 - 指针简单使用

    指针 Swift的指针分类两类: typed pointer指定类型指针:unsafePointer,unsafeMutablePointer raw pointer未指定类型指针:unsafeRawPointer...,unsafeMutableRawPointer Swift指针与OC指针类比 Swift OC unsafePointer const T * 指定类型指针与指针内存都不可变 unsafeMutablePointer... T * 指定类型指针与指针内存都可变 unsafeRawPointer const void * 未知类型指针与指针内存都不可变 unsafeMutableRawPointer void * 未知类型指针与指针内存都可变...,增加引用计数 passUnretained: 转换后不持有,不增加引用计数 toOpaque:将托管类转为指针(不安全) */ let heapPtr = Unmanaged.passUnretained...因为这种转换是在 Swift 的类型管理之外进行的,因此编译器无法确保得到的类型是否确实正确,你必须明确地知道你在做什么。

    70130

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券