คำถามติดแท็ก initialization

6
วิธีตั้งค่าเริ่มต้นใน Go structs
มีคำตอบ / เทคนิคหลายประการสำหรับคำถามด้านล่าง: จะตั้งค่าเริ่มต้นเป็นโครงสร้าง golang ได้อย่างไร? วิธีการเริ่มต้นโครงสร้างใน golang ฉันมีคำตอบสองสามข้อ แต่จำเป็นต้องมีการอภิปรายเพิ่มเติม


13
การเริ่มต้นโครงสร้าง C ++ ที่สะดวก
ฉันกำลังพยายามหาวิธีที่สะดวกในการเริ่มต้นโครงสร้าง C ++ 'pod' ตอนนี้พิจารณาโครงสร้างต่อไปนี้: struct FooBar { int foo; float bar; }; // just to make all examples work in C and C++: typedef struct FooBar FooBar; หากฉันต้องการเริ่มต้นสิ่งนี้อย่างสะดวกใน C (!) ฉันสามารถเขียน: /* A */ FooBar fb = { .foo = 12, .bar = 3.4 }; // illegal C++, legal …

7
การเริ่มต้นเริ่มต้นของอาร์เรย์ใน Java คืออะไร?
ดังนั้นฉันประกาศและเริ่มต้นอาร์เรย์ int: static final int UN = 0; int[] arr = new int[size]; for (int i = 0; i < size; i++) { arr[i] = UN; } พูดว่าฉันทำสิ่งนี้แทน ... int[] arr = new int[5]; System.out.println(arr[0]); ... 0จะพิมพ์ออกมาเป็นมาตรฐาน นอกจากนี้ถ้าฉันทำสิ่งนี้: static final int UN = 0; int[] arr = new int[5]; System.out.println(arr[0]==UN); …


10
วิธีการจำลองการเริ่มต้นอาร์เรย์ C“ int arr [] = {e1, e2, e3, …}” พฤติกรรมกับ std :: array?
(หมายเหตุ: คำถามนี้เป็นคำถามเกี่ยวกับการไม่ต้องระบุจำนวนขององค์ประกอบและยังคงอนุญาตให้มีชนิดที่ซ้อนกันที่จะเริ่มต้นได้โดยตรง.) คำถามนี้กล่าวถึงการใช้งานที่เหลือสำหรับอาร์เรย์ C int arr[20];เช่น ในคำตอบของเขา @James Kanze แสดงหนึ่งในฐานที่มั่นสุดท้ายของอาร์เรย์ C มันเป็นลักษณะการเริ่มต้นที่ไม่ซ้ำกัน: int arr[] = { 1, 3, 3, 7, 0, 4, 2, 0, 3, 1, 4, 1, 5, 9 }; เราไม่ต้องระบุจำนวนองค์ประกอบไชโย! ทีนี้วนซ้ำด้วยฟังก์ชัน C ++ 11 std::beginและstd::endจาก<iterator>( หรือตัวแปรของคุณเอง ) และคุณไม่จำเป็นต้องคิดถึงขนาดของมัน ตอนนี้มีวิธีใดบ้าง (ที่เป็นไปได้ของ TMP) ในการบรรลุเป้าหมายเดียวกันstd::arrayหรือไม่? อนุญาตให้ใช้มาโครเพื่อทำให้ดูดีขึ้น :) ??? std_array = { …

11
วิธีที่ถูกต้องในการเริ่มบริการ mongod บน linux / OS X คืออะไร?
ฉันได้ติดตั้ง mongodb และสามารถเรียกใช้ทำงานกับมันทำสิ่งประเภทอ่าน / เขียน DB อย่างง่าย ตอนนี้ฉันกำลังพยายามตั้งค่า Mac ให้เรียกใช้ mongod เป็นบริการ ฉันได้รับ "ไม่พบคำสั่ง" เพื่อตอบสนองต่อ: init mongod start เพื่อตอบสนองต่อ: ~: service mongod start service: This command still works, but it is deprecated. Please use launchctl(8) instead. service: failed to start the 'mongod' service และถ้าฉันลอง: ~: launchctl start mongod launchctl start …

4
การเริ่มต้น C ++ เป็นศูนย์ - เหตุใด "b" ในโปรแกรมนี้จึงไม่ได้กำหนดค่าเริ่มต้น แต่มีการเริ่มต้นʻa`
ตามคำตอบที่ยอมรับ (และเท่านั้น) สำหรับคำถาม Stack Overflowนี้ การกำหนดตัวสร้างด้วย MyTest() = default; จะทำให้วัตถุเริ่มต้นเป็นศูนย์แทน แล้วทำไมต่อไปนี้ #include <iostream> struct foo { foo() = default; int a; }; struct bar { bar(); int b; }; bar::bar() = default; int main() { foo a{}; bar b{}; std::cout << a.a << ' ' << b.b; } สร้างผลลัพธ์นี้: 0 …

6
ฉันจะเริ่มต้นอาร์เรย์สตริงที่มีความยาว 0 ใน Java ได้อย่างไร
Java Docs สำหรับวิธีการ String[] java.io.File.list(FilenameFilter filter) นี้รวมอยู่ในคำอธิบายผลตอบแทน: อาร์เรย์จะว่างเปล่าถ้าไดเร็กทอรีว่างเปล่าหรือตัวกรองไม่ยอมรับชื่อ ฉันจะทำสิ่งที่คล้ายกันและเริ่มต้นอาร์เรย์ String (หรืออาร์เรย์อื่น ๆ สำหรับเรื่องนั้น) ให้มีความยาว 0 ได้อย่างไร

6
ทำไมต้องใช้คีย์เวิร์ดเพื่อความสะดวกใน Swift
เนื่องจาก Swift รองรับวิธีการและตัวเริ่มต้นทำงานมากเกินไปคุณสามารถใส่หลาย ๆ ตัวinitควบคู่กันและใช้ตามที่คุณคิดว่าสะดวก: class Person { var name:String init(name: String) { self.name = name } init() { self.name = "John" } } ทำไมconvenienceคำหลักถึงมีอยู่? อะไรทำให้สิ่งต่อไปนี้ดีขึ้นอย่างมาก class Person { var name:String init(name: String) { self.name = name } convenience init() { self.init(name: "John") } }

6
เหตุใดฉันจึงสามารถเริ่มรายการเหมือนอาร์เรย์ใน C # ได้
วันนี้ฉันประหลาดใจที่พบว่าใน C # ฉันสามารถทำได้: List<int> a = new List<int> { 1, 2, 3 }; ทำไมฉันถึงทำได้ ตัวสร้างเรียกว่าอะไร? ฉันจะทำสิ่งนี้กับชั้นเรียนของตัวเองได้อย่างไร ฉันรู้ว่านี่เป็นวิธีเริ่มต้นอาร์เรย์ แต่อาร์เรย์เป็นรายการภาษาและรายการเป็นวัตถุง่ายๆ ...
131 c#  .net  list  initialization 

2
Java: int array เริ่มต้นด้วยองค์ประกอบที่ไม่ใช่ศูนย์
ตาม JLS intอาร์เรย์ควรเติมด้วยศูนย์หลังจากเริ่มต้น อย่างไรก็ตามฉันต้องเผชิญกับสถานการณ์ที่ไม่เป็นอยู่ พฤติกรรมดังกล่าวเกิดขึ้นก่อนใน JDK 7u4 และยังเกิดขึ้นในการอัปเดตทั้งหมดในภายหลัง (ฉันใช้การใช้งาน 64 บิต) รหัสต่อไปนี้แสดงข้อยกเว้น: public static void main(String[] args) { int[] a; int n = 0; for (int i = 0; i < 100000000; ++i) { a = new int[10]; for (int f : a) if (f != 0) throw new RuntimeException("Array …



5
เหตุใด C ++ 11 จึงไม่รองรับรายการ initializer ที่กำหนดเป็น C99 [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ พิจารณา: struct Person { int height; int weight; int age; }; int main() { Person p { .age = 18 }; } รหัสด้านบนถูกต้องตามกฎหมายใน C99 แต่ไม่ถูกกฎหมายใน C ++ 11 สิ่งที่เป็น C ++ 11 เหตุผลของคณะกรรมการมาตรฐานในการยกเว้นการสนับสนุนคุณลักษณะที่มีประโยชน์เช่นนี้หรือไม่?
121 c++  c  c++11  initialization  c99 

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