2013-10-06 88 views
1

我想讓我的程序在用戶沒有輸入時在參數中放置一個默認值。 到目前爲止我的代碼:球拍上課缺省/可選參數?

(define nodo% 
    (class object% 
    (init INFO) 
    (init HIJOS) 
    (init VISITADO?) 
    (define info INFO) 
    (define hijos HIJOS) 
    (define visitado? VISITADO?) 
    (super-new))) 

我想使默認是VISITADO的arguemen't? (西班牙語爲訪問)

回答

4

init允許這種默認參數:

#lang racket 
(define nodo% 
    (class object% 
    (init INFO) 
    (init HIJOS) 
    (init [VISITADO? #f]) 
    (define info INFO) 
    (define hijos HIJOS) 
    (define visitado? VISITADO?) 
    (define/public (get-visitado?) 
     visitado?) 
    (super-new))) 

(define n1 (new nodo% [INFO 'a] [HIJOS 'b])) 
(send n1 get-visitado?) ; #f 
(define n2 (new nodo% [INFO 'a] [HIJOS 'b] [VISITADO? #t])) 
(send n2 get-visitado?) ; #t 

順便問一下,你也可以使用init-field你用它做什麼:

#lang racket 
(define nodo% 
    (class object% 
    (init-field info 
       hijos 
       [visitado? #f]) 
    (super-new))) 

(define n1 (new nodo% [info 'a] [hijos 'b])) 
(get-field visitado? n1) ; #f 
(define n2 (new nodo% [info 'a] [hijos 'b] [visitado? #t])) 
(get-field visitado? n2) ; #t 

the documentation