Hello, what I understood is that multiple dispatch allows to write the same function with different arguments, and then the compiler transforms the different functions in different methods.
I am trying to use this feature for a ods to dictionary converter, where the first function works with an array of sheet names or positions (and returns a dictionary of dictionaries) and, for user’s convenience, a second function that works with a single sheet name/pos and call the first function.
The first function is defined as:
function ods2dic(filename;sheetsNames=[],sheetsPos=[],ranges=[])
The second one is defined as:
function ods2dic(filename;sheetName::String=nothing,sheetPos::Int64=nothing,range=())
The problem is that when I write my calls as:
outDic1 = OdsIO.ods2dic("spreadsheet.ods";sheetsPos=[1,3],ranges=[((1,1),(3,3)),((2,2),(6,4))])
Julia tries to call the second function, and obviously throws an error because different keyword arguments (note the s)… …but the second function should be called only when a single String or Integer is given,
Why (she?) does that ?
(if I comment out the second function, the call is correctly dispatched to the first function)