


Bagaimanakah refleksi jenis untuk jenis tersirat berfungsi?
Setakat yang saya faham, go ditaip secara statik dan biasanya tidak melakukan penukaran jenis tersirat. Oleh itu, pemalar tanpa pengisytiharan jenis eksplisit adalah tertakluk kepada keperluan pada penggunaan pertama.
Jadi, dalam coretan kod di bawah, saya mahu n
是 float64
,因为这就是 math.sin
所期望的。但是当打印出反射类型时,我看到了 int
.
package main import ( "fmt" "math" "reflect" ) func main() { const n = 5000 // No explict type // fmt.Println(reflect.TypeOf(n)) // this would print "int" fmt.Println(math.Sin(n)) // math.Sin expects a float64 fmt.Println(reflect.TypeOf(n)) // print "int" }
Apa yang berlaku di sini? n
实际上有隐式 int 类型吗?或者反射不会显示这样的实际类型情况?我不认为 math.sin
sedang menaip hujahnya kerana jika saya menyatakan jenis eksplisit, pengkompil akan menimbulkan ralat.
Jawapan betul
[Jenis pemalar yang tidak ditaip] adalah berdasarkan keperluan pada penggunaan pertama.
Di sinilah anda silap. Satu jenis dipilih secara bebas untuk setiap kegunaan.
math.Sin memerlukan hujah float64, jadi pengkompil mesti memilih float64 di sini.
reflect.TypeOf mengambil hujah antara muka{}, jadi pengkompil bebas untuk memilih sebarang jenis angka (kerana mereka semua melaksanakan antara muka kosong). Jenis integer lalai dipilih di sini: int.
Atas ialah kandungan terperinci Bagaimanakah refleksi jenis untuk jenis tersirat berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penukaran jenis tersirat yang wujud dalam MySQL termasuk rentetan kepada jenis angka, jenis tarikh dan masa, titik terapung dan jenis integer, nilai NULL, dsb. Pengenalan terperinci: 1. Penukaran jenis tersirat daripada rentetan kepada jenis angka Apabila rentetan dibandingkan atau dikira dengan nilai jenis angka, MySQL akan menukar rentetan itu kepada jenis angka 2. Jenis tersirat jenis tarikh dan masa penukaran. Dalam MySQL, jenis tarikh dan masa juga boleh ditukar secara tersirat dengan jenis data lain 3. Penukaran jenis tersirat bagi jenis titik terapung dan integer, dsb.

Menukar satu jenis data kepada yang lain dipanggil penukaran jenis. Penukaran Jenis Tersirat Penukaran Jenis Tersirat Penukaran Jenis Tersirat Pengkompil menyediakan penukaran jenis tersirat apabila operan mempunyai jenis data yang berbeza. Ia dilakukan secara automatik oleh pengkompil dengan menukar jenis data yang lebih kecil kepada jenis data yang lebih besar. inti,x;floatf;doubled;longintl;Di sini, ungkapan di atas akhirnya dinilai kepada nilai "berganda". Contoh Berikut ialah contoh penukaran jenis tersirat-intx;for(x=97;x<=122;x++){ printf("%c",x);/*Im

Penukaran jenis dalam fungsi membolehkan data satu jenis ditukar kepada jenis lain, dengan itu memanjangkan fungsi fungsi. Gunakan sintaks: type_name:=variable.(type). Sebagai contoh, anda boleh menggunakan fungsi strconv.Atoi untuk menukar rentetan kepada nombor dan mengendalikan ralat jika penukaran gagal.

Kelebihan parameter lalai dalam fungsi C++ termasuk memudahkan panggilan, meningkatkan kebolehbacaan dan mengelakkan ralat. Kelemahannya ialah fleksibiliti terhad dan sekatan penamaan. Kelebihan parameter variadic termasuk fleksibiliti tanpa had dan pengikatan dinamik. Kelemahan termasuk kerumitan yang lebih besar, penukaran jenis tersirat dan kesukaran dalam penyahpepijatan.

Terokai pelbagai jenis penukaran jenis tersirat dan peranannya dalam pengaturcaraan Pengenalan: Dalam pengaturcaraan, kita selalunya perlu berurusan dengan jenis data yang berbeza. Kadangkala, kita perlu menukar satu jenis data kepada jenis lain untuk melaksanakan operasi tertentu atau memenuhi keperluan khusus. Dalam proses ini, penukaran jenis tersirat adalah konsep yang sangat penting. Penukaran jenis tersirat merujuk kepada proses di mana bahasa pengaturcaraan secara automatik melakukan penukaran jenis data tanpa menyatakan jenis penukaran secara eksplisit. Artikel ini akan meneroka pelbagai jenis penukaran jenis tersirat dan peranannya dalam pengaturcaraan,

Situasi biasa: 1. Gunakan fungsi atau operasi; 2. Penukaran jenis tersirat 3. Gunakan tidak sama dengan (!= atau <>); Nilai; 7. Selektiviti indeks rendah 8. Prinsip awalan paling kiri bagi indeks komposit 9. Keputusan pengoptimum;

Bahasa Go menggunakan penaipan statik dan melakukan pemeriksaan jenis pada masa penyusunan untuk mengelakkan ralat jenis masa jalan. Jenis asas termasuk integer, terapung, boolean, rentetan dan kepingan bait. Jenis komposit termasuk tatasusunan, kepingan, struktur, antara muka dan saluran. Bahasa Go menyokong inferens jenis dan operator penukaran pelbagai jenis. Jenis alias memudahkan kebolehbacaan dan kebolehselenggaraan kod. Penaipan statik membawa kelebihan keselamatan, prestasi dan kebolehselenggaraan.

Perbezaan antara pembolehubah int dan apungan dalam bahasa C ialah ia mempunyai jenis yang berbeza: int digunakan untuk menyimpan integer, manakala apungan digunakan untuk menyimpan perpuluhan. Saiz storan: int biasanya mengambil masa 4 bait, dan terapung juga mengambil 4 bait. Ketepatan: int mewakili integer tepat, manakala apungan mempunyai ketepatan terhad. Julat: int biasanya berjulat dari -2^31 hingga 2^31-1, manakala apungan mempunyai julat yang lebih luas. Operasi aritmetik: int dan apungan boleh melakukan operasi dan perbandingan aritmetik, tetapi hasilnya mungkin dipengaruhi oleh pengehadan ketepatan. Penukaran jenis: Penukaran jenis eksplisit atau tersirat boleh dilakukan antara int dan float.
