我有一个函数,在这个函数中,用户传递一个参数来选择应该处理矩阵的哪些列,如下所示:
function foo{P<:Real, T<:Integer}(;x::AbstractMatrix{P}=zeros(3, 10), colN::Union(T, AbstractVector{T})=1)
x[:,colN] = x[:,colN]+1
return x
end
我想让用户有一种方法来指定应该处理所有列,最后我更改了函数,使其成为默认行为:
function foo{P<:Real, T<:Integer}(;x::AbstractMatrix{P}=zeros(3, 10), colN::Union(T, AbstractVector{T})=[1:size(x)[2]])
x[:,colN] = x[:,colN]+1
return x
end
function foo{P<:Real, T<:Integer}(;x::AbstractMatrix{P}=zeros(3, 10), colN::Union(T, AbstractVector{T}, String)="all")
if colN == "all"
colN = [1:size(x)[2]]
end
x[:,colN] = x[:,colN]+1
return x
end
foo(colN="all")
ERROR: `__foo#8__` has no method matching __foo#8__(::Array{Float64,2}, ::ASCIIString)
为什么一个整数、一个整数向量和一个字符串之间的联合似乎不起作用?
问题是,当您传递字符串时,Julia无法推导出t
类型,因此无法解决要调用哪个方法。
考虑以下两个函数:F
和G
:
function f{T<:Integer}(x::Union(T,String))
x
end
function g{T<:Integer}(y::T, x::Union(T,String))
x
end
在这种情况下,您将观察到以下行为:
F(1)
是1
,因为T
的值可以推导出来f(“hello”)
提供错误,因为t
的值未知G(1,“hello”)
是“hello”
,因为T
的值可以推导话虽如此,我认为Julia使用多个分派而不是union
类型来实现您想要做的事情会更合乎习惯。
更新。鉴于coln
是一个字符串或索引列表,我相信使用t=int
(或者int64
可以处理大量内存)。将以下函数H
与上面的F
和G
进行比较:
function h(x::Union(Int,String))
x
end
在本例中,H(1)
和H(“hello”)
都按预期工作(例如,H(1.0)
引发错误)。
问题内容: 我想在for循环中使用附加到整数的字符串来创建字符串。像这样: 但是它返回一个错误: 连接字符串和整数的最佳方法是什么? 问题答案: 注意: 此答案中使用的方法(反引号)在更高版本的Python 2中已弃用,在Python 3中已删除str()。 你可以使用 : 它将打印。 为了得到你可以使用@YOU建议 按照Python3更新 你可以使用 : 它将打印。 为了得到你可以使用@YOU建
Question leetcode: String to Integer (atoi) | LeetCode OJ lintcode: (54) String to Integer(atoi) Implement function atoi to convert a string to an integer. If no valid conversion could be performed,
Roman to Integer 描述 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 分析 从前往后扫描,用一个临时变量记录分段数字。 如果当前比前一个大,说明这一段的值应该是当前这个值减去上一个值。比如IV = 5 – 1;否则
Integer to Roman 描述 Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 分析 无 代码 // Integer to Roman // 时间复杂度O(num),空间复杂度O(1) class Solution {
如果数字是整数,则返回true。 语法 (Syntax) 以下是语法。 (integer? number) 例子 (Example) 以下是整数测试函数的示例。 (ns clojure.examples.hello (:gen-class)) ;; This program displays Hello World (defn Example [] (def x (integer?
问题内容: 我正在尝试将字符串转换为,但是得到了。 我的字串是,现在我将其转换为我所拥有的任何一个。 我如何将其转换为它们中的任何一个。 请帮助我摆脱这个问题。 问题答案: 您必须为数字使用适当的语言环境,例如 版画