Julia : 关于类型的匹配和规范建议
一、起因:match error
比如,我们有一个函数,fun(data::Dic{AbstractString,Float64},Float64) , 但是,实际上,我们传进去的参数格式是Dict{ASCIIString,Float64}类型,就会报match error.
事实上:
我们知道:
ASCIIString<:AbstractString # => true
但是:
Array{ASCIIString,1}<:Array{AbstractString,1} # =>false
Dict{ASCIIString,Float64} <: Dict{AbstractString,Float64} # => false
二、建议
所以在写函数的格式和输入格式时,一定要注意签名格式的一致,否则容易报错,而且容易一下找不出问题所在。
建议
(1) 数据入口:函数的参数的类型,尽量从宽
如, 以下函数要适用AbstractString 的可能子集做KEY, 可以更加规范一下,增加适用性。
#比如: 对weights
function indexmake{T<:AbstractString}(data::Dict{Dates.Date,Dict{AbstractString,Array{kBarData,1}}},weights::Dict{T,Float64})
# content
#
end
(2) 数据出口:对于返回类型,尽量不要返回从宽的类型,
如,
fun getData(data:Float64)
return Dict{ASCIIString,Float64}() ; # 尽量不要返回Dict{AbstractString,Float64} 类型,类型过宽。
end
另外,至于自定义类型的数据,可以从宽,问题不大.如果考虑速度,最好还是用具体类型而不是抽象类型。
type data {T<:AbstractString}
name:: T
end
Julia : 关于类型的匹配和规范建议相关推荐
- 调用COM控件的时候(例如访问数据库)出现类型不匹配。
COM规范中,所有的变量类型对于C语言来说只有一种:VARIANT. 如果我们想从数据库里面取出一个long类型的值,或者说COM控件需要返回给我一个值,都要通过VARIANT完成. 例如 CComQ ...
- 【WORD文档部分消失】元素结束标记中的名称必须与开始标记中的元素类型相匹配
[WORD 出错无法打开]元素结束标记中的名称必须与开始标记中的元素类型相匹配_yezizhangxinya的博客-CSDN博客_元素结束标记中的名称必须与开始标记的元素类型相匹配使用工具 Rebui ...
- Windows客户端C/C++编程规范“建议”——前言
前言 工作中接触了很多编程规范.其中最有意思的是,公司最近发布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句:"该规范不适用于Windows平台开发".看来这份 ...
- Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下: $config['upload_path'] = './uploads/'; $config['a ...
- 来自Mozilla的CSS书写规范建议
一个来自Mozilla的CSS书写规范建议,希望对大家有帮助 引用内容 //显示属性 display list-style position float clear //自身属性 width heig ...
- ASP:当 request.cookies 发生 Microsoft VBScript 运行时错误 (0x800A000D) 类型不匹配: '[string:...
昨天当一个客户告诉我,登录后看不到图片的时候,我还不相信,因为我的浏览器测试发现一切正常. 通过QQ远程协助后,我才发现服务器端真的报错: Microsoft VBScript 运行时错误 (0x80 ...
- 【转】Android编码规范建议18条
转自:http://www.chinaz.com/design/2015/0908/443732.shtml Android编码规范建议18条 适合手机app设计师和android 工程师阅读. 1. ...
- sscanf函数中类型不匹配警告引发的BUG和思考
2019独角兽企业重金招聘Python工程师标准>>> BUG产生背景 项目开发中的在对网络的IP等地址进行协议封装的处理过程中,我使用了如下的一段代码: buff[0] = con ...
- IE9 CSS 因 Mime 类型不匹配而被忽略“问题
写页面的时候在chrome,fireforks等页面上显示正常,但是换成IE9之后就完全没有样式了.IE真是个奇葩的怪胎.它的报错信息是'CSS 因 Mime 类型不匹配而被忽略',也就是说所有的.c ...
- oracle类型不匹配,sys_refcursor的使用,报错类型不匹配
---------------------------------------------------------------------------------------------------- ...
最新文章
- Android UI滑动加载源码
- C语言中不安全的函数
- 【SNN脉冲神经网络】SNN脉冲神经网络的工作原理演示MATLAB仿真带GUI界面
- wxWidgets:显示如何从 DLL 使用 wx 的示例
- rest post put_REST / HTTP方法:POST与PUT与PATCH
- 计算机电子线路制图是学啥的,电气制图与电子线路CAD课程教学大纲.doc
- 如何将照片中的文字转变成可编辑的文章(如何将书上的文字转变为可编辑的文字)
- PDF转Word软件
- 计算机表格快捷键,EXCEL表格所有的快捷键《excel一键到底 快捷键》
- 6. LaTeX 参考文献的排版与引用
- 基于MATLAB的极限与求导(附完整代码)
- 上海迪士尼乐园推出全新夜间演出;咖世家在中国推出风味冷萃系列即饮咖啡 | 美通企业日报...
- Cacti之交换机端口无法正常显示
- 50部青春励志微电影致我们不朽的青春理想
- Buy and Resell(贪心好题!)
- html5 光线流光效果,HTML5 CANVAS 漂亮的流光线性花形图案动画
- MATLAB小技巧(9) 图片合成视频与视频分帧
- 微信小程序调用地图和跟据经纬度打开手机地图导航
- 浅谈const和constant(常量)
- Python入门(二)之Python的集成开发环境(IDE)
热门文章
- 条款40:慎重的选择多重继承
- 【发现趣味】要你命三千——老代码中的那些坑
- Windows基本磁盘结构简析(二)——MBR结构分析
- ssh框架的构成分析和代码构架小结 .
- Linux启动时 Error 15: File not found 问题解决方法
- 经典C语言学习教程资料
- 报错:非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复...
- 使用Quartz.Net定时删除Log
- decodeURI decodeURIComponent
- Win7 下面升级VS2017 vs_community install Microsoft.Windows.D3DCompiler.Msu.Win7