TCL & Scopes

Tcl mempunyai 2 jenis variabel scope (atau mungkin bila diterjemahkan
menjadi lingkup :P).

  • global
  • global variabel dapat diakses diseluruh script, akan tetapi sebuah
    prosedur/method dapat melakukan overshadow global variabel dengan
    mendefinisikan variable lokal dengan nama yang sama.

  • lokal
  • lokal variabel hanya dapat diakses dalam lingkup sebuah fungsi.

bila didalam fungsi/method ingin menggunakan variabel global, maka
kita menggunakan peringah global, berikut ini adalah contoh dari
program yang menggunakan lokal dan global variabel.

set a 10
set b 20

puts "$a $b"

proc test_scope {} {
    global a
    set a "me good"
    set b "but I feel not good"
    puts "$a $b"

}

test_scope
puts "Nilai dari a sekarang : $a"
puts "Nilai dari b sekarang : $b"

hasilnya adalah sebagai berikut.

% source scope.tcl
10 20
me good but I feel not good
Nilai dari a sekarang : me good
Nilai dari b sekarang : 20
%

dapat dilihat pada fungsi test_scope, bahwa global variabel a, dapat
digunakan apabila kita menggunakan perintah global terlebih dahulu.

Advertisements

could not debug in eclipse 3.2

Recently I couldn’t debug my application using eclipse 3.2, it will throw “Could not connect to VM”. And in the console there is a log

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=JVMTI_ERROR_INTERNAL(113)
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_LOAD(509) ["debugInit.c",L476]
JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initialized

I am using Ubuntu 7.04, after a googling session, it seems that there are a lot of people have the same problem.

I found the solution in java forum, and add 127.0.0.1 localhost in my /etc/hosts solve the problem.