You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/interview.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ weight: 8
40
40
-گاهی اوقات یک تابع باید بداند که مقدار یک چیزی چیست، همچنین باید وجود یا عدم وجود آن را بداند. معمولا هنگام خواندن JSON از این استفاده میکنیم تا بدانیم فیلدی وجود دارد یا خیر.
41
41
{{< /details >}}
42
42
43
-
{{< details title="5: زبان گولنگ از موارد زیر پشتیبانی نمیکند؟" open=false >}}
43
+
{{< details title="5: زبان گولنگ از چه قابلیت های معروف در زبان های دیگر پشتیبانی نمیکند؟" open=false >}}
44
44
- type inheritance
45
45
- operator overloading
46
46
- method overloading
@@ -49,11 +49,12 @@ weight: 8
49
49
{{< /details >}}
50
50
51
51
{{< details title="6: برای گوروتین ها چه مواقعی از channel و چه مواقعی از mutex استفاده می شود؟" open=false >}}
52
-
معمولاً در مواقعی که گوروتین ها نیاز به برقراری ارتباط با یکدیگر دارند، از channels استفاده می کنیم. درصورتی که قسمتی از کد ما(برای مثال مقدار متغیری را تغییر می دهیم) که در آن واحد فقط باید یک گوروتین به آن دسترسی داشته باشد، از یک قفل مانند mutext استفاده می کنیم.
52
+
معمولاً در مواقعی که گوروتین ها نیاز به برقراری ارتباط با یکدیگر دارند، از channels استفاده می کنیم. درصورتی که قسمتی از کد ما(برای مثال مقدار متغیری را تغییر می دهیم) که در آن واحد فقط باید یک گوروتین به آن دسترسی داشته باشد، از یک قفل مانند mutex استفاده می کنیم.
53
53
{{< /details >}}
54
54
55
55
{{< details title="7: تفاوت بین goroutine و thread را توضیح دهید." open=false >}}
56
-
Goroutines سبک وزن هستند و دارای یک استک اولیه کوچکتر که به صورت پویا گسترش مییابد هستند، این در حالی است که threads استک ثابت دارند. Goroutines همزمانی را در سطح زبان با استفاده از channelها مدیریت میکنند، در حالی که threads ممکن است نیاز به lockهای صریح داشته باشند. همچنین، سوئیچینگ بین goroutines کارایی بیشتری نسبت به thread switching دارد.
56
+
Goroutines سبک وزن هستند و دارای یک استک اولیه کوچکتر که به صورت پویا گسترش مییابد هستند همچنین مدیریت آنها توسط Go runtime و در سطح کاربر رخ میدهد ، این در حالی است که threads استک ثابت دارند و مدیریت آنها در سطح کرنل و توسط سیستم عامل صورت میگیرد .
57
+
Goroutines همزمانی را در سطح زبان با استفاده از channelها مدیریت میکنند، در حالی که threads ممکن است نیاز به lockهای صریح داشته باشند. همچنین، سوئیچینگ بین goroutines کارایی بیشتری نسبت به thread switching دارد.
57
58
{{< /details >}}
58
59
59
60
{{< details title="8: توضیح دهید که interface در Golang چیست و چگونه میتواند مورد استفاده قرار گیرد." open=false >}}
@@ -65,7 +66,8 @@ Goroutines سبک وزن هستند و دارای یک استک اولیه کو
65
66
{{< /details >}}
66
67
67
68
{{< details title="10: در Golang چگونه میتوانیم dependency management را انجام دهیم؟" open=false >}}
68
-
Golang از Go Modules برای مدیریت وابستگیها استفاده میکند که به توسعه دهندگان امکان میدهد پروژهها را به صورت مستقل از GOPATH راحتتر مدیریت کنند. با استفاده از دستوراتی مانند `go mod init`, `go mod tidy`, و `go mod vendor` میتوان وابستگیهای لازم برای پروژه را مدیریت کرد.
69
+
Golang از Go Modules برای مدیریت وابستگیها استفاده میکند که به توسعه دهندگان امکان میدهد پروژهها را به صورت مستقل از GOPATH راحتتر مدیریت کنند.
70
+
با استفاده از دستوراتی مانند `go mod init`, `go mod tidy` , `go mod vendor` میتوان وابستگیهای لازم برای پروژه را مدیریت کرد.
69
71
{{< /details >}}
70
72
71
73
{{< details title="11: چه زمانی یک channel در Golang باید با buffer مورد استفاده قرار گیرد؟" open=false >}}
0 commit comments