Thursday, August 12, 2010

Re: Is there any internal mechanism that convert the accessing key of dictionary to a specific function?

> Or is there an alternate method to accessing dictionary  when the key
> is not found
> , instead of showing error directly?

You can use get() -- see :help get()

I have once created a simple prototype-like library that provides for
defining a method that returns default values: http://github.com/tomtom/prototype_vim

Example (fib with memoization):

let x = prototype#New()
let ncalls = 0
function! x.__Default(n) dict
let g:ncalls += 1
if a:n <= 1
let self[a:n] = a:n
else
let self[a:n] = self.__Get(a:n - 2) + self.__Get(a:n - 1)
endif
endfunction
Should be equal map(range(0, 10), 'x.__Get(v:val)'),
\ [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
Should be equal x.__Get(10), 55
Should be equal ncalls, 11

If that was, what you were asking for.

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: