Julia: 关于SubString
来源:互联网 发布:mac mysql 图形化界面 编辑:程序博客网 时间:2024/04/25 05:11
一般地,我们更多地是接触抽象类String,具体类ASCIIString,因为在julia中,具体类具有在运行上速度高人一等的特性,所以我一般喜欢用ASCIIString.
但是,由于Julia在IO后,往往是通过SubString{ASCIIString}来返回结果的,
比如:@time data =readcsv("E:\\CSV\\FutureData\\IF\\20150114\\IF01_20150114.csv" ) # 其实,CSV中第一列:是时间格式的字符串
typeof(data[1,1]) 就是一个SubString{ASCIIString}类型。有时,我们并没有很在意,因为很多情况,它看起来和String功能相近。
但是,如果你的函数的参数,只写了ASCIIString类型,比如,getDateTime(dt::ASCIIString),那么,此时调用data[1,1],这个时侯就会报错。
所以,很有必要了解一下。因为,我们一般不会专门重载一个SubString{ASCIIString}的参数来加写一个函数。
julia> str ="abcdefghi" # 创建一个ASCIIString
"abcdefghi"
julia> typeof(str)
ASCIIString (constructor with 2 methods)
julia> b=SubString(str,1,5) # ASCIIString =>SubString{ASCIIString}
"abcde"
julia> typeof(b)
SubString{ASCIIString} (constructor with 1 method)
julia> typeof(b)<:String # SubString{ASCIIString}和String是从属关系
true
julia> typeof(b)<:ASCIIString # SubString{ASCIIString}和ASCIIString是“兄弟”关系
false
julia> c=convert(String,b) # SubString{ASCIIString} => 类型不会发生变化
"abcde"
julia> typeof(c)
SubString{ASCIIString} (constructor with 1 method)
julia> d=convert(ASCIIString,b) # SubString{ASCIIString} => ASCIIString 类型会发生变化
"abcde"
julia> typeof(d)
ASCIIString (constructor with 2 methods)
julia> @time bb=str[1:4] #速度比较,预编译后,总体差不多
elapsed time: 1.4212e-5 seconds (200 bytes allocated)
"abcd"
julia> @time bb=str[1:4]
elapsed time: 9.475e-6 seconds (152 bytes allocated)
"abcd"
julia> @time cc=b[1:4]
elapsed time: 0.004762755 seconds (4504 bytes allocated)
"abcd"
julia> @time cc=b[1:4]
elapsed time: 9.475e-6 seconds (104 bytes allocated)
"abcd"
julia> @time cc=b[1:4]
elapsed time: 8.29e-6 seconds (104 bytes allocated)
"abcd"
julia> string(str,cc) # 混合后 => ASCIIString
"abcdefghiabcd"
julia> typeof(string(str,cc))
ASCIIString (constructor with 2 methods)
- Julia: 关于SubString
- Julia : 关于Atom中的Julia代码排版
- Julia:关于split的用法
- 关于julia的路径问题,往往很重要!
- Julia: 关于Github上的其它库
- Julia: 关于"..." (三个圆点)
- Julia:关于push 与 Array 和Dict 数据结构
- 关于Julia 和Matlab速度的比较!(以偏概全)。
- Julia : 关于类型的匹配和规范建议
- Julia: 引用与copy: 关于数组、自定义类型与初始化
- Julia : 小s与关于绝对路径的转义方式
- Julia: 关于下载库时WinRPM的Bug
- 关于Java中的substring方法!
- 关于substring的char[]共享
- 关于string类型substring方法
- Julia set
- julia笔记
- Julia: readdlm
- 一 s5p4418 支持SD/TF卡离线烧录
- How to remove a layer when its animation completes?
- ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in
- CFRunLoop介绍(转载)
- linux 基本操作学习2
- Julia: 关于SubString
- 创建ubuntu14.04 KVM虚机
- 什么是正则表达式?浅谈 c++中的正则表达式
- 字节、位、字符、字、字长,乱了吧
- Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
- NDK常用编译参数
- Core Animation编程指南
- XXXX
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor