GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
const(n) Tcl Built-In Commands const(n)


const - create and initialize a constant

const varName value


This command is normally used within a procedure body (or method body, or lambda term) to create a constant within that procedure, or within a namespace eval body to create a constant within that namespace. The constant is an unmodifiable variable, called varName, that is initialized with value. The result of const is always the empty string on success.

If a variable varName does not exist, it is created with its value set to value and marked as a constant; this means that no other command (e.g., set, append, incr, unset) may modify or remove the variable; variables are checked for whether they are constants before any traces are called. If a variable varName already exists, it is an error unless that variable is marked as a constant (in which case const is a no-op).

The varName may not be a qualified name or reference an element of an array by any means. If the variable exists and is an array, that is an error.

Constants are normally only removed by their containing procedure exiting or their namespace being deleted.

Create a constant in a procedure:

proc foo {a b} {

const BAR 12345
return [expr {$a + $b + $BAR}] }

Create a constant in a namespace to factor out a regular expression:

namespace eval someNS {

const FOO_MATCHER {(?i)}\mfoo\M}
proc findFoos str {
variable FOO_MATCHER
regexp -all $FOO_MATCHER $str
}
proc findFooIndices str {
variable FOO_MATCHER
regexp -all -indices $FOO_MATCHER $str
} }

Making a constant in a loop doesn't error:

proc foo {n} {

set result {}
for {set i 0} {$i < $n} {incr i} {
const X 123 lappend result [expr {$X + $i**2}]
} }

proc(n), namespace(n), set(n), unset(n)

namespace, procedure, variable, constant

9.0 Tcl

Search for    or go to Top of page |  Section n |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.