Search notes:

vim script: pass by reference or by value

"
"  run_ arrays_by_reference_or_by_value
"
"  See also arrays-and-hashes/arrays_by_reference_or_by_value.vim

redir > pass_by_reference_or_by_value.out

fu F1(p)
  let a:p = a:p * 2
endfu

fu F2(p)
   let a:p = a:p . '-abc'
endfu

fu F3(p)
   call add(a:p, 'baz')
   let a:p[0] = 'bar'
endfu

let n = 21
" Error «E46» in function (a:p is readonly)
" call F1(n)
echo n
" 21

let s = 'foo'
" same error as above
" call F2(s)
echo s
" foo

let a = ['abc', 'bar']
call F3(a)
echo a
" ['foo', 'bar', 'baz']

q
Github repository about-vim, path: /vimscript/pass_by_reference_or_by_value.vim

See also

VIM script

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/developm...', 1759612560, '216.73.216.149', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/development/vim/script/vimscript/pass_by_reference_or_by_value(75): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78