2015-04-27 7 views
10

मुझे किसी अन्य पैकेज और फ़ाइल से किसी प्रकार को आयात करने का प्रयास करने में कोई समस्या है। जिस संरचना को मैं आयात करने की कोशिश कर रहा हूं वह नीचे है।किसी अन्य पैकेज से फ़ाइल आयात करें और फ़ाइल गोलांग

type PriorityQueue []*Item 

type Item struct { 
    value string 
    priority int 
    index int 
} 

अगर मैं एक ही फाइल में अपनी तरीकों के सभी के साथ साथ PriorityQueue डाल मैं

pq:= &PriorityQueue{} 

मैं पर एक जवाब के लिए एक पागल की तरह इंटरनेट खोज कर दिया गया है के साथ यह घोषणा करता हूँ यह सरल सवाल है लेकिन मुझे कोई जवाब नहीं मिला है। मैं आम तौर पर जावा में प्रोग्राम करता हूं और आयात कक्षाएं प्राथमिक होती हैं।

+0

आप संरचना को अपने पैकेज में क्यों कॉपी नहीं करेंगे? – smartDonkey

+0

या पैकेज आयात करें? – smartDonkey

+1

इसे योग्य बनाएं। 'pq: = & mypkg.PriorityQueue {}'। –

उत्तर

26

गो में आप प्रकार या फ़ंक्शंस आयात नहीं करते हैं, तो आप packages आयात करते हैं (Spec: Import declarations देखें)।

एक उदाहरण आयात घोषणा:

import "container/list" 

और एक पैकेज का आयात आप और की अपनी निर्यात पहचानकर्ता तक पहुंच प्राप्त होती आप उदाहरण के लिए, packagename.Identifiername के रूप में उन्हें का उल्लेख कर सकते द्वारा:

var mylist *list.List = list.New() 

// Or simply: 
l := list.New() 

आयात घोषणा में कुछ चाल हैं, उदाहरण के लिए:

import m "container/list" 

आप "m.Identifiername" के साथ निर्यात किए गए पहचानकर्ताओं को संदर्भित कर सकते हैं, उदा।

import . "container/list" 

आप छोड़ सकते हैं पैकेज का नाम पूरी तरह से:

l := m.New() 
इसके अलावा करके

l := New() 

लेकिन केवल इन "आपात स्थिति में" का उपयोग करें या जब वहाँ नाम टकराव हैं (जो दूर्लभ हैं)।

+0

मैंने गलती भी की है जहां मैंने GOPATH के बाहर एक नई परियोजना बनाई है। असफल स्थानीय आयात पहला संकेत हो सकता है कि यह किया गया है। – Shadoninja

संबंधित मुद्दे