Swift String length property

Swift的String竟然没有length属性,好难受,每次要获取String的字符串长度都要借助全局函数countElements。

没办法,只有扩展String结构体,给它添加一个属性了。

import Foundation

extension String {

    // readonly computed property
    var length: Int {
        return countElements(self)
    }
}
        let a = "hechengmen"

        println(a.length)    // 10

不过需要注意的是,与Objective-C不同的是,swift用的不是category,而是extension,并且extension没有名字哦。另外extension只能添加computed property,不能添加stored property或者property observer。

时间: 2024-10-10 04:28:19

Swift String length property的相关文章

关于vector.size()和string.length() 的返回类型 size_type

今天写循环的时候碰到一个问题,发现:string.length()返回的类型是size_type.它是unsigned 类型.string::size_type它在不同的机器上,长度是可以不同的,并非固定的长度.但只要你使用了这个类型,就使得你的程序适合这个机器.与实际机器匹配. 如果你的机器是32位的,那么 int  len = str.length(),就侥幸对了. 如果你的机器是64位的,那么你就 被fuck 了. unsigned 类型两个数相减,如果是结果负数,就fuck了!显然不会得

string.length()与-1比较为什么会出现匪夷所思的结果

今天调试程序发现了个匪夷所思的事情,-1与string.length()比较永远是-1大,看下面代码 #include<iostream> #include<string> using namespace std; int main() { string str; str="123"; int num=-1; //int len=str.length(); if(num<str.length()) { cout<<"-1<str

int 与 string::length()

今天在代码中遇到这样的问题 int nStart = -1; while (nStart < strTemp.length()) { ... } 感觉自己写的逻辑没有错误,但是,代码执行结果就是不对,结果单步调试到该处发现,while语句一次也没有执行,为什么呢? 这里的原因是:string::length()的返回值string::size_type类型,而size_type是unsigned int的,所以-1跟它比较是比它大的. 哎,细节决定成败啊,以后千万要注意

字符集与编码--Java string.length 与 char 类型

这篇博客用于记录学习字符编码过程中得到的结论,不做过多的理论讲述. 参考资料:字符集与编码(五) 1. char 类型 在Java中,char类型存放一个用UTF-16编码代码单元(16位)表示的字符,用于表示单个字符,通常用来表示字符常量.例如:'A'是编码为65所对应的字符常量. 与"A"不同,"A"是一个包含字符A的字符串.Unicode代码点可以表示为十六进制值,其范围从\u0000到\uFFFF.例如:\u2122表示注册符号,\u03C0表示希腊字母π.

[Swift]String的坑

在String中获取某个位置的Character,各Swift版本的差异 Swift 3.0 let text = "abc" let index2 = text.index(text.startIndex, offsetBy: 2) //will call succ 2 times let lastChar: Character = text[index2] //now we can index! let characterIndex2 = text.characters.index

string length()

#include <set> std::set<std::string> setName; int main() { std::string strName = "世界英雄aa";//中文占两个字节,英文占一个字节 const char* name = strName.c_str(); int length = strName.length();//10 length = strlen(name);//10 return 0; }

Swift - String, Character

String, Character String 在 Swift 中使用双引号(")作为界限: let greeting = "Hello!" // greeting's type is String Character 可以从string初始化,只要只包含一个字符: let chr: Character = "H" // valid let chr2: Character = "??" // valid let chr3: Chara

string.length() 返回值是unsigned

int main(int argc, const char * argv[]) { // insert code here... string a = "a"; cout<<a.size()<<endl; cout<<a.size()-1<<endl; cout<<a.length()<<endl; cout<<a.length()-1<<endl; return 0; } 输出: 0 18

【转】The magic behind array length property

Developer deals with arrays every day. Being a collection, an important property to query is the number of items: Array.prototype.length. In JavaScript the length does not always indicate the number of existing elements (for sparse arrays) and modify