Forum Discussion
proc - how to interpret
Hi,
I am puzzled what is exact purpose of char declaration in proc below (from
proc randomNumberGenerator {length {chars "0123456789"}} {
set range [expr {[string length $chars]-1}]
set txt ""
for {set i 0} {$i < $length} {incr i} {
set pos [expr {int(rand()*$range)}]
append txt [string range $chars $pos $pos]
}
return $txt
}
(from article)
I assume that char is receiving value (10) passed to proc via: set x [call library::randomNumberGenerator 10]. But what length {chars "0123456789"} is exactly doing here?
Piotr
Hi Piotr,
"0123456789" is the default value for "chars" if not passed explicitly. In the end, the proc can be called by using either:
[call library::randomNumberGenerator 10]
or
[call library::randomNumberGenerator 10 12345]
Cheers, Kai
- dragonflymrCirrostratus
Thanks for answer, sorry for stupid questions but I am not so experienced in programming at all.
So what exactly it means length {chars "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"} - that is declaration what kind of characters can be used for generating random number?
What confuses me in above what is purpose of using length? So how 10 in call library::randomNumberGenerator 10 is passed and used by proc? I assumed that 10 passed to proc is defining how long random string should be?
Or I am just confused by length - it's not function but var that is used to receive 10 when call is performed?
Piotr
Hi Piotr,
the proc simply outputs "$length" times a "rand()" position from "$chars". So any alphanumeric charater may be used as input.
Cheers, Kai
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com