การเขียนโปรแกรม

คำถาม & คำตอบสำหรับโปรแกรมเมอร์มืออาชีพและกระตือรือร้น

14
ค้นหาแพ็คเกจเวอร์ชันที่ติดตั้งด้วย pip
การใช้ pip มันเป็นไปได้ไหมที่จะคิดว่าเวอร์ชั่นของแพ็คเกจใดที่ติดตั้งอยู่ในปัจจุบัน? ฉันรู้เกี่ยวกับpip install XYZ --upgradeแต่ฉันสงสัยว่ามีอะไรที่เหมือนpip info XYZกัน หากไม่ใช่สิ่งที่จะเป็นวิธีที่ดีที่สุดในการบอกเวอร์ชันที่ฉันใช้อยู่ในปัจจุบัน
711 python  pip 

10
การเข้ารหัส URL Java ของพารามิเตอร์สตริงการสืบค้น
บอกว่าฉันมี URL http://example.com/query?q= และฉันมีแบบสอบถามที่ป้อนโดยผู้ใช้เช่น: คำสุ่ม£ 500 ธนาคาร $ ฉันต้องการให้ผลลัพธ์เป็น URL ที่เข้ารหัสอย่างถูกต้อง: http://example.com/query?q=random%20word%20%A3500%20bank%20%24 อะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้? ฉันลองURLEncoderและสร้างวัตถุ URI / URL แต่ไม่มีสิ่งใดที่ออกมาถูกต้องนัก
710 java  http  url  encoding  urlencode 



17
Direct casting vs 'as' โอเปอเรเตอร์?
พิจารณารหัสต่อไปนี้: void Handler(object o, EventArgs e) { // I swear o is a string string s = (string)o; // 1 //-OR- string s = o as string; // 2 // -OR- string s = o.ToString(); // 3 } ความแตกต่างระหว่างการคัดเลือกสามประเภทคืออะไร (โอเคคนที่สามไม่ใช่การคัดเลือกนักแสดง แต่คุณได้รับเจตนา) ควรเลือกอันไหน
709 c#  casting 

16
@class เทียบกับ #import
ฉันเข้าใจว่าควรใช้การประกาศไปข้างหน้าในเหตุการณ์ ClassA ต้องรวมส่วนหัว ClassB และ ClassB ต้องรวมส่วนหัว ClassA เพื่อหลีกเลี่ยงการรวมแบบวน ฉันยังเข้าใจด้วยว่า#importa เป็นวิธีที่ง่ายifndefเพื่อให้การรวมเกิดขึ้นเพียงครั้งเดียว คำถามของฉันคือ: เมื่อไหร่จะใช้#importและเมื่อไหร่จะใช้@class? บางครั้งถ้าฉันใช้การ@classประกาศฉันเห็นคำเตือนคอมไพเลอร์ทั่วไปเช่นต่อไปนี้: warning: receiver 'FooController' is a forward class and corresponding @interface may not exist. ชอบที่จะเข้าใจสิ่งนี้จริง ๆ เพียงแค่ลบการ@classประกาศไปข้างหน้าและทิ้ง#importคำเตือนที่คอมไพเลอร์ให้ฉัน

12
อะไรคือความแตกต่างระหว่าง . (จุด) และ $ (เครื่องหมายดอลลาร์)?
อะไรคือความแตกต่างระหว่างจุด(.)และเครื่องหมายดอลลาร์($)? ดังที่ฉันเข้าใจแล้วพวกเขาทั้งคู่เป็นน้ำตาลประโยคโดยไม่จำเป็นต้องใช้วงเล็บ

9
การรีเซ็ตรีโมตเป็นการกระทำที่แน่นอน
ฉันต้องการยกเลิกการเปลี่ยนแปลงทั้งหมดที่ทำหลังจากส่งมอบ<commit-hash>แล้ว ดังนั้นฉันจึง: git reset --hard <commit-hash> ตอนนี้ฉันต้องการทำเช่นเดียวกันกับรีโมทของฉัน ฉันจะทำสิ่งนี้ได้อย่างไร ฉันได้ทำบางอย่าง (และดัน) หลังจากนั้น<commit-hash>และฉันต้องการที่จะทิ้งพวกเขาทั้งหมด เป็นเพียงบางสิ่งที่ผิดอย่างมากในทางและฉันไม่ต้องการทำให้มันแย่กว่าที่มีอยู่แล้ว ( โดยทั่วไปฉันต้องการย้อนกลับorigin/masterไปเป็น<commit-hash>
709 git 

19
ความแตกต่างระหว่าง map () และ flatMap () วิธีการใน Java 8 คืออะไร?
มีอะไรใหม่ในStack Overflow ที่ขายดีที่สุด : แผนที่ที่ดีที่สุดของแผนที่ Java หรือไม่? ใน Java 8 ความแตกต่างระหว่างStream.map()และStream.flatMap()วิธีการคืออะไร
709 java  java-8  java-stream 

12
นิพจน์ปกติ: มีตัวดำเนินการ AND หรือไม่
เห็นได้ชัดว่าคุณสามารถใช้|(ท่อ?) เพื่อเป็นตัวแทนORแต่มีวิธีที่จะเป็นตัวแทนANDเช่นกัน? โดยเฉพาะฉันต้องการจับคู่ย่อหน้าข้อความที่มีวลีทั้งหมด แต่ไม่เรียงตามลำดับ
708 regex  lookahead 

18
วิธีการลบ / ลบไฟล์ขนาดใหญ่จากการคอมมิทประวัติในที่เก็บ Git?
บางครั้งฉันทำ DVD-rip ลงในโปรเจ็กต์ของเว็บไซต์จากนั้นสะเพร่าgit commit -a -m ...และในกรณีที่ซื้อคืน repo นั้นมีจำนวน 2.2 กิ๊ก ครั้งต่อไปที่ฉันทำการแก้ไขลบไฟล์วิดีโอและยืนยันทุกอย่าง แต่ไฟล์บีบอัดยังคงอยู่ในที่เก็บในประวัติ ฉันรู้ว่าฉันสามารถเริ่มต้นสาขาจากการกระทำเหล่านั้นและรีบูตสาขาหนึ่งไปยังสาขาอื่น แต่ฉันควรทำอย่างไรเพื่อรวม 2 คอมมิชชันเข้าด้วยกันเพื่อไม่ให้ไฟล์ขนาดใหญ่ปรากฏในประวัติและถูกล้างข้อมูลในขั้นตอนการรวบรวมขยะ

30
Git push ให้ผลลัพธ์ใน“ การตรวจสอบล้มเหลว”
ฉันได้ใช้ Github ในขณะที่น้อยและฉันได้รับที่ดีกับgit add, git commitและgit pushเพื่อให้ห่างไกลด้วยไม่มีปัญหา ทันใดนั้นฉันมีข้อผิดพลาดที่แจ้งว่า: ร้ายแรง: การตรวจสอบสิทธิ์ล้มเหลว ในเทอร์มินัลฉันโคลนที่เก็บทำงานกับไฟล์จากนั้นฉันใช้git addเพื่อเพิ่มไฟล์ลงในบันทึกการกระทำและเมื่อฉันทำgit commitมันก็ใช้ได้ดี สุดท้ายgit pushขอชื่อผู้ใช้และรหัสผ่าน ฉันใส่สิ่งเหล่านั้นอย่างถูกต้องและทุกครั้งที่ทำสิ่งนี้มันจะบอกว่ามีข้อผิดพลาดเดียวกัน ใครบ้างมีความคิดว่าสาเหตุของปัญหานี้คืออะไรและฉันจะแก้ไขได้อย่างไร เนื้อหาของ.git/configคือ: [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = http://www.github.com/######/Random-Python-Tests fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [user] name = …

25
ลบเส้นขอบออกจาก IFrame
ฉันจะลบเส้นขอบออกจาก iframe ที่ฝังอยู่ในเว็บแอปได้อย่างไร ตัวอย่างของ iframe คือ: <iframe src="myURL" width="300" height="300">Browser not compatible.</iframe> ฉันต้องการเปลี่ยนจากเนื้อหาในหน้าของฉันไปเป็นเนื้อหาของ iframe ให้ราบรื่นโดยสมมติว่าสีพื้นหลังมีความสอดคล้องกัน เบราว์เซอร์เป้าหมายคือ IE6 เท่านั้นและน่าเสียดายที่โซลูชันสำหรับผู้อื่นจะไม่ช่วย

5
เหตุใด [] จึงเร็วกว่ารายการ ()
ฉันเพิ่งเทียบความเร็วการประมวลผลของ[]และlist()และรู้สึกประหลาดใจที่พบว่า[]วิ่งเกินสามครั้งเร็วlist()กว่า ฉันทำการทดสอบเดียวกันด้วย{}และdict()ผลลัพธ์ก็เหมือนกันจริง: []และ{}ทั้งคู่ใช้เวลาประมาณ 0.128 วินาที / ล้านรอบในขณะที่list()และdict()ใช้เวลาประมาณ 0.428 วินาที / ล้านรอบ ทำไมนี้ ทำ[]และ{}(และอาจจะ()และ''ด้วย) ทันทีส่งกลับสำเนาของบางตัวอักษรหุ้นที่ว่างเปล่าในขณะที่ลูกน้องอย่างชัดเจนชื่อของพวกเขา ( list(), dict(), tuple(), str()) อย่างเต็มที่ไปเกี่ยวกับการสร้างวัตถุหรือไม่ว่าพวกเขาเป็นจริงมีองค์ประกอบ? ฉันไม่รู้ว่าทั้งสองวิธีต่างกันอย่างไร แต่ฉันชอบที่จะรู้ ฉันไม่พบคำตอบในเอกสารหรือบน SO และการค้นหาวงเล็บว่างเปล่ากลายเป็นปัญหามากกว่าที่ฉันคาดไว้ ฉันได้ผลลัพธ์ตามกำหนดเวลาโดยการโทรtimeit.timeit("[]")และtimeit.timeit("list()")และtimeit.timeit("{}")และtimeit.timeit("dict()")เพื่อเปรียบเทียบรายการและพจนานุกรมตามลำดับ ฉันใช้ Python 2.7.9 เมื่อเร็ว ๆ นี้ฉันค้นพบ " ทำไมถ้า True ช้ากว่าถ้า 1? " ที่เปรียบเทียบประสิทธิภาพของif Trueการif 1และดูเหมือนว่าจะได้สัมผัสกับสถานการณ์ตามตัวอักษรและทั่วโลกที่คล้ายกัน บางทีมันก็คุ้มค่าที่จะพิจารณาเช่นกัน

13
แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างอินสแตนซ์ Android ใหม่
ฉันได้เห็นวิธีปฏิบัติทั่วไปสองประการเพื่อยกตัวอย่างชิ้นส่วนใหม่ในแอปพลิเคชัน: Fragment newFragment = new MyFragment(); และ Fragment newFragment = MyFragment.newInstance(); ตัวเลือกที่สองใช้ประโยชน์จากวิธีการคงที่newInstance()และโดยทั่วไปมีวิธีการดังต่อไปนี้ public static Fragment newInstance() { MyFragment myFragment = new MyFragment(); return myFragment; } ตอนแรกฉันคิดว่าประโยชน์หลักคือความจริงที่ว่าฉันสามารถโอเวอร์โหลดเมธอด newInstance () เพื่อให้ความยืดหยุ่นเมื่อสร้างอินสแตนซ์ใหม่ของ Fragment - แต่ฉันสามารถทำได้โดยการสร้าง Constructor ที่โอเวอร์โหลดสำหรับ Fragment ฉันพลาดอะไรไปหรือเปล่า? ประโยชน์ของวิธีการหนึ่งเหนืออีกวิธีหนึ่งคืออะไร หรือเป็นเพียงการปฏิบัติที่ดี?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.