2012년 8월 3일 금요일

:use :require :import 다른 점

https://groups.google.com/d/topic/clojure/c8TRHm93ZWs/discussion


  • :use 
    •  namespace 사용없이 파일에 있는 함수를 호출해 옴
    • 자바에서 static import 랑 비슷하면 
    • import static org.junit.Assert.* 와 같은
    • 사용법
      • (ns some.namespace
          (:require [clojure.contrib.json :as json])
          (:use [clojure.string :only [trim lower-case split]]
                [clojure.contrib.shell-out]
                [clojure.pprint]
                [clojure.test]))
        
  • :require 
    • namespaec을 사용하면 파일에 있는 함수를 호출해 옴. 
    • 자바에서 import 와 같음
    • 사용법
      • (ns rosettacode.24game
          (:require [clojure.string :as str]))
        
        (defn parse-infix-data
          "input '1+2+3+4'
           output (1 + 2 + 3 + 4)
           where the numbers are clojure numbers, and the symbols are clojure operators"
          [string] (map read-string (next (str/split string #""))))
        
  • :import
    • java class를 import 해 옴 
    • 사용법
      • ;; Multiple imports at once.
        (import '(java.util Date Calendar)
                '(java.net URI ServerSocket)
                java.sql.DriverManager)
        
      • user=> (import java.util.Date)
        java.util.Date
        
        user=> (def *now* (Date.))
        #'user/*now*
        
        user=> (str *now*)
        "Tue Jul 13 17:53:54 IST 2010"
        

:

댓글 없음:

댓글 쓰기