Gambaran keseluruhan Microsoft Power Fx

Power Fx ialah bahasa kod rendah yang akan digunakan merentasi Microsoft Power Platform. Ia adalah tujuan umum, bahasa pengaturcaraan jenis kukuh, perisytiharan dan berfungsi.

Power Fx dinyatakan dalam teks mesra manusia. Ia ialah bahasa kod rendah yang pembuat boleh bekerja dengan secara langsung dalam bar formula seperti Excel atau tetingkap teks Visual Studio Code. "Rendah" dalam kod rendah adalah kerana sifat bahasa yang ringkas dan mudah, membuat tugas pengaturcaraan biasa mudah untuk kedua-dua pembuat dan pemaju. Ia mendayakan spektrum pembangunan penuh dari tiada kod bagi mereka yang tidak pernah diprogramkan sebelum ini ke "kod pro" untuk profesional bermusim, tanpa tebing di antara pembelajaran atau menulis semula, mendayakan pasukan berbeza untuk bekerjasama dan menjimatkan masa dan berbelanja.

Nota

  • Microsoft Power Fx ialah nama baharu untuk bahasa formula bagi aplikasi kanvas dalam Power Apps. Gambaran keseluruhan ini dan artikel berkaitan ialah kerja yang sedang berjalan kerana kita mengekstrak bahasa daripada aplikasi kanvas, mengintegrasikan ia dengan produk Microsoft Power Platform yang lain dan menjadikan ia tersedia sebagai sumber terbuka. Untuk mengetahui lebih lanjut dan merasai bahasa hari ini, mulakan dengan Mari bermula dengan formula dalam aplikasi kanvas dalam dokumentasi Power Apps dan daftar masuk secara percuma Power Apps percubaan.
  • Dalam artikel ini, kami merujuk kepada pembuat apabila kami menerangkan ciri yang mungkin digunakan pada akhir spektrum kemahiran pengaturcaraan. Kami merujuk kepada pengguna sebagai pemaju jika ciri itu lebih maju dan mungkin di luar skop pengguna Excel biasa.

Power Fx mengikat objek bersama-sama dengan formula seperti hamparan pengisytiharan. Contohnya, fikirkan sifat Boleh Dilihat kawalan UI sebagai sel dalam lembaran kerja Excel, dengan formula berkaitan yang mengira nilai berdasarkan sifat kawalan lain. Logik formula mengira semula nilai secara automatik, sama seperti cara hamparan lakukan, yang menjejaskan keterlihatan kawalan.

Juga, Power Fx menawarkan logik imperatif apabila diperlukan. Lembaran kerja biasanya tidak mempunyai butang yang boleh menyerahkan perubahan kepada pangkalan data, tetapi aplikasi sering lakukan. Bahasa ungkapan yang sama digunakan untuk logik pengisytiharan dan imperatif.

Power Fx akan tersedia sebagai perisian sumber terbuka. Ia kini diintegrasikan ke dalam aplikasi kanvas, dan kami sedang dalam proses mengekstraknya dari Power Apps untuk digunakan dalam produk Microsoft Power Platform lain dan sebagai sumber terbuka. Maklumat lanjut: Microsoft Power Fx pada GitHub

Artikel ini adalah gambaran keseluruhan bahasa dan prinsip reka bentuknya. Untuk mengetahui lebih lanjut tentang Power Fx, lihat artikel berikut:

Fikirkan hamparan

Bagaimanakah jika anda boleh membina aplikasi semudah anda membina lembaran kerja di Excel?

Bagaimanakah jika anda boleh memanfaatkan pengetahuan hamparan anda yang sedia ada?

Ini adalah soalan yang memberi inspirasi penciptaan Power Apps dan Power Fx. Beratus-ratus juta orang mencipta lembaran kerja dengan Excel setiap hari; mari kita bawa mereka penciptaan aplikasi yang mudah dan menggunakan konsep Excel yang sudah mereka ketahui. Dengan memecahkan Power Fx daripada Power Apps, kami akan menjawab soalan-soalan ini untuk membina automasi, atau Virtual Agent, atau domain lain.

Semua bahasa pemprograman, termasuk Power Fx, mempunyai ungkapan: cara untuk mewakili pengiraan ke atas nombor, rentetan atau jenis data lain. Contohnya, mass * acceleration dalam kebanyakan bahasa menyatakan pendaraban mass dan acceleration. Hasil ungkapan boleh diletakkan dalam pembolehubah, digunakan sebagai argumen kepada prosedur, atau bersarang dalam ungkapan yang lebih besar.

Power Fx mengambil langkah ini lebih jauh. Ungkapan itu sendiri mengatakan apa-apa tentang perkara yang dikira. Terpulang kepada pembuat untuk meletakkan ia dalam pemboleh ubah atau diserahkan ke fungsi. Dalam Power Fx, bukan hanya menulis ungkapan yang tidak mempunyai makna khusus, anda menulis formula yang mengikat ungkapan kepada pengecam. Anda menulis force = mass * acceleration sebagai formula untuk mengira force. Sebagai perubahan mass atau acceleration, force dikemas kini secara automatik kepada nilai baharu. Ungkapan menerangkan pengiraan, formula memberikan nama kepada pengiraan dan menggunakan ia sebagai resipi. Inilah sebabnya kita merujuk kepada Power Fx sebagai bahasa formula.

Contohnya, formula ini daripada Limpahan Tindanan mencari rentetan dalam urutan terbalik. Dalam Excel, ia kelihatan seperti imej berikut.

Carian balikan

Tangkapan skrin bar formula di Excel dengan formula: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) Sel A1 mengandungi teks "Helo, Dunia! Selamat berkenalan!" Sel A2 mengandungi teks "anda!"

Power Fx berfungsi dengan formula yang sama, dengan rujukan sel digantikan dengan rujukan sifat kawalan:

Power Fx carian terbalik.

Tangkapan skrin bar formula Power Fx dalam Power Apps. Formula tersebut ialah =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Dalam kotak Input di bawah formula, teks "Helo, Dunia! Selamat berkenalan!" muncul, huruf demi huruf. Pada masa yang sama dalam kotak Label, huruf perkataan terakhir muncul. Apabila teks penuh muncul dalam kotak Input, perkataan "anda!" muncul dalam kotak Label.

Apabila nilai kawalan Input diubah, kawalan Label secara automatik mengira semula formula dan menunjukkan nilai baharu. Tiada pengendali peristiwa OnChange di sini yang mungkin biasa dalam bahasa lain.

Contoh lain yang menggunakan formula untuk warna Fill bagi skrin. Sebagai gelangsar yang mengawal Merah, Hijau dan Biru ditukar, warna latar belakang berubah secara automatik kerana ia sedang dikira semula.

Penggelongsor warna.

Tiada peristiwa OnChange untuk kawalan gelangsar yang mungkin biasa dalam bahasa lain. Tidak ada cara sama sekali untuk menetapkan nilai sifat Fill secara eksplisit. Jika warna tidak berfungsi seperti yang diharapkan, anda perlu melihat formula ini untuk memahami sebab ia tidak berfungsi. Anda tidak perlu mencari melalui aplikasi untuk mencari kod yang menetapkan sifat pada masa yang tidak dijangka; tiada unsur masa. Nilai formula yang betul sentiasa dikekalkan.

Oleh kerana gelangsar ditetapkan kepada warna gelap, label untuk Merah, Hijau, dan Biru berubah kepada putih untuk mengimbangnya. Ini dilakukan melalui formula mudah di sifat Color untuk setiap kawalan label.

Power Fx penggelongsor warna.

Perkara yang hebat tentang ini adalah ia terpencil daripada perkara yang berlaku untuk warna Fill: ini ialah dua pengiraan yang sama sekali berbeza. Daripada prosedur monolitik yang besar, logik Power Fx biasanya terdiri daripada banyak formula yang lebih kecil yang bebas. Ini menjadikan mereka lebih mudah difahami dan membolehkan penambahbaikan tanpa mengganggu logik sedia ada.

Power Fx adalah bahasa pengisytiharan, sama seperti Excel. Pembuat mentakrifkan tingkah laku yang mereka mahu, tetapi terpulang kepada sistem untuk menentukan dan mengoptimumkan cara dan masa untuk mencapai tingkah laku tersebut. Untuk menjadikan ia praktikal, kebanyakan kerja dilakukan melalui fungsi tulen tanpa kesan sampingan, menjadikan juga Power Fx bahasa yang berfungsi (sekali lagi sama seperti Excel).

Sentiasa hidup

Aspek pentakrifan lembaran kerja adalah ia sentiasa dilangsungkan dan perubahan ditunjukkan dengan serta-merta. Tiada mod kompil atau jalanan dalam lembaran kerja. Apabila formula diubah suai atau nilai dimasukkan, lembaran kerja dikira semula dengan serta-merta untuk menunjukkan perubahan. Sebarang ralat yang dikesan ditampilkan dengan serta-merta dan tidak mengganggu seluruh lembaran kerja.

Perkara yang sama dilaksanakan dengan Power Fx. Pengkompil tokokan digunakan untuk terus memastikan program disegerakkan dengan data yang dikendalikan. Perubahan dirambat secara automatik melalui graf program, yang menjejaskan hasil pengiraan bergantung, yang mungkin mendorong sifat pada kawalan seperti warna atau kedudukan. Penyusun tokokan juga menyediakan pengalaman penyuntingan formula yang kaya dengan IntelliSense, cadangan, auto-lengkap, dan pemeriksaan jenis.

Dalam animasi di bawah, nombor pesanan dipaparkan dalam kawalan label bergantung pada kawalan gelangsar, walaupun terdapat dua ralat pada label di bawahnya. Aplikasi ini sangat menarik dan interaktif. Percubaan pertama untuk menetapkan formula dengan memasukkan hasil .InvalidName dalam garis merah dan ralat segera dipaparkan, seperti yang sepatutnya, tetapi aplikasi terus berjalan.

Sentiasa hidup.

Apabila .Employee dimasukkan, ini menyebabkan anak tetingkap Data menambah jadual Pekerja, metadata untuk jadual ini didapatkan dan cadangan untuk lajur ditawarkan dengan segera. Kami hanya berjalan merentasi perhubungan dari satu jadual ke jadual yang lain dan sistem membuat pelarasan yang diperlukan untuk rujukan aplikasi. Perkara yang sama berlaku apabila menambah .Customer.

Selepas setiap perubahan, gelangsar meneruskan dengan nilai terakhirnya dan sebarang pembolehubah mengekalkan nilainya. Sepanjang itu, nombor pesanan terus dipaparkan dalam label teratas seperti yang sepatutnya. Aplikasi ini telah hidup, memproses data sebenar, sepanjang masa. Kita boleh menyimpannya, meninggalkannya, dan orang lain boleh membuka dan menggunakannya sama seperti Excel. Tiada langkah membina, tiada kompil, hanya ada langkah terbit untuk menentukan versi aplikasi yang sedia untuk pengguna.

Kod rendah

Power Fx menerangkan logik perniagaan dengan ringkas, namun masih formula berkuasa. Kebanyakan logik boleh dikurangkan kepada satu baris dengan banyak keekspresian dan kawalan untuk keperluan yang lebih kompleks. Matlamatnya adalah untuk memastikan bilangan konsep pembuat perlu memahami sehingga minimum—asalkan tidak lebih daripada pengetahuan pengguna Excel.

Contohnya, untuk mencari nama pertama pekerja untuk pesanan, anda menulis Power Fx seperti yang ditunjukkan dalam animasi berikut. Di luar konsep Excel, satu-satunya konsep tambahan yang digunakan di sini adalah notasi titik "." untuk meneliti ke dalam struktur data, dalam kes ini .Employee.'First Name'. Animasi menunjukkan pemetaan antara bahagian formula Power Fx dengan konsep yang perlu dikodkan secara eksplisit dalam JavaScript yang setara.

JavaScript kod rendah.

Mari lihat lebih mendalam pada semua perkara yang Power Fx lakukan untuk kita dan kebebasan yang perlu dioptimumkan kerana formula adalah pengisytiharan:

  • Tidak segerak: Semua operasi data dalam Power Fx adalah tidak segerak. Pembuat tidak perlu menentukan ini dan pembuat juga tidak perlu menyegerakkan operasi selepas panggilan berakhir. Pembuat tidak perlu tahu konsep ini sama sekali, mereka tidak perlu tahu fungsi lambda atau jaminan.

  • Tempatan dan jauh: Power Fx menggunakan sintaks dan fungsi yang sama untuk data yang dalam ingatan tempatan dan dari jauh dalam pangkalan data atau perkhidmatan. Pengguna tidak perlu memikirkan perbezaan ini. Power Fx sebolehnya mewakilkan kepada pelayan secara automatik untuk memproses penapis dan menyusun dengan lebih efisien.

  • Data hubungan: Pesanan dan Pelanggan adalah dua jadual yang berbeza, dengan hubungan banyak ke satu. Pertanyaan OData memerlukan "$expand" dengan pengetahuan tentang kunci asing, sama seperti Menyertai SQL. Formula tidak mempunyai perkara ini; malah, kekunci pangkalan data adalah satu lagi konsep pembuat tidak perlu tahu. Pembuat boleh menggunakan notasi dot mudah untuk mengakses keseluruhan graf perhubungan dari rekod.

  • Unjuran: Apabila menulis pertanyaan, banyak pemaju menulis select * from table, yang membawa balik semua lajur data. Power Fx menganalisis semua lajur yang digunakan melalui keseluruhan aplikasi, walaupun merentasi kebersandaran formula. Unjuran dioptimumkan secara automatik dan, sekali lagi, pembuat tidak perlu tahu maksud "unjuran".

  • Dapatkan semula hanya perkara yang diperlukan: Dalam contoh ini, fungsi LookUp membayangkan bahawa hanya satu rekod harus diambil dan itu sahaja yang dikembalikan. Jika lebih banyak rekod diminta dengan menggunakan fungsi Filter—yang beribu-ribu rekod mungkin layak—hanya satu halaman data dikembalikan pada satu masa, mengikut urutan 100 rekod setiap halaman. Pengguna mesti gerak isyarat melalui galeri atau jadual data untuk melihat lebih banyak data dan ia akan dibawa masuk secara automatik untuk mereka. Pembuat boleh memberi sebab tentang set besar data tanpa perlu berfikir tentang mengehadkan permintaan data kepada ketulan yang boleh diuruskan.

  • Berjalan hanya apabila diperlukan: Kami mentakrifkan formula untuk sifat Text kawalan label. Apabila pembolehubah terpilih berubah, LookUp dikira semula secara automatik dan label dikemas kini. Pembuat tidak perlu menulis pengendali OnChange untuk Pemilihan dan tidak perlu ingat bahawa label ini bergantung pada perkara tersebut. Ini adalah pengaturcaraan pengisytiharan seperti yang dibincangkan sebelum ini: pembuat menyatakan perkara yang mereka mahukan dalam label, bukan cara atau masa ia perlu diambil. Jika label ini tidak kelihatan kerana ia pada skrin yang tidak kelihatan atau sifat Visible adalah palsu, kami boleh menangguhkan pengiraan ini sehingga label boleh dilihat dan menghapuskan ia dengan berkesan jika perkara itu jarang berlaku.

  • Terjemahan sintaks Excel: Excel digunakan oleh ramai pengguna, yang kebanyakannya tahu bahawa ampersan (&) digunakan untuk penyambungan rentetan. JavaScript menggunakan tanda tambah (+) dan bahasa lain menggunakan titik (.).

  • Nama paparan dan penyetempatan: First Name digunakan dalam formula Power Fx manakala nwind_firstname digunakan dalam JavaScript setara. Dalam Microsoft Dataverse dan SharePoint, terdapat nama paparan untuk lajur dan jadual sebagai tambahan kepada nama logik yang unik. Nama paparan sering lebih mesra pengguna, seperti dalam kes ini, tetapi ia mempunyai kualiti penting lain kerana ia boleh disetempatkan. Jika anda mempunyai pasukan berbilang bahasa, setiap ahli pasukan boleh melihat jadual dan nama medan dalam bahasa mereka sendiri. Dalam semua kes penggunaan, Power Fx memastikan bahawa nama logik yang betul dihantar ke pangkalan data secara automatik.

Tiada kod

Anda tidak perlu membaca dan menulis Power Fx untuk mula menyatakan logik. Terdapat banyak penyesuaian dan logik yang boleh diungkapkan melalui suis mudah dan pembina UI. Alat tiada kod ini telah dibina untuk membaca dan menulis Power Fx untuk memastikan bahawa terdapat banyak ruang untuk seseorang melangkah dengan lebih jauh, sambil mengakui bahawa alat tiada kod tidak akan menawarkan semua ungkapan bahasa penuh. Walaupun digunakan dengan pembina yang tiada kod, bar formula berada di depan dan di pusat dalam Power Apps untuk mendidik pembuat tentang perkara yang sedang dilakukan bagi pihak mereka supaya mereka boleh mula belajar Power Fx.

Mari lihat beberapa contoh. Dalam Power Apps, panel sifat menyediakan suis dan tombol tiada kod untuk sifat kawalan. Dalam amalan, kebanyakan nilai sifat adalah statik. Anda boleh menggunakan pembina warna untuk menukar warna latar belakang Gallery. Perhatikan bahawa bar formula menggambarkan perubahan ini, mengemas kini formula ke panggilan RGBA lain. Pada bila-bila masa, anda boleh pergi ke bar formula dan mengambil langkah selanjutnya—dalam contoh ini, dengan menggunakan ColorFade untuk menyesuaikan warna. Sifat warna masih muncul dalam panel sifat, tetapi ikon fx muncul pada penuding dan anda diarahkan ke bar formula. Ini berfungsi sepenuhnya dalam dua cara: mengalih keluar panggilan ColorFade mengembalikan warna kepada sesuatu yang boleh difahami oleh panel sifat dan anda boleh menggunakan ia sekali lagi untuk menetapkan warna.

Warna tiada kod.

Berikut adalah contoh yang lebih rumit. Galeri ini menunjukkan senarai pekerja daripada Dataverse. Dataverse menyediakan pandangan ke atas data jadual. Kita boleh memilih salah satu pandangan ini dan formula ditukar untuk menggunakan fungsi Filter dengan nama paparan ini. Kedua-dua menu juntai bawah boleh digunakan untuk mendail dalam jadual yang betul dan melihat tanpa menyentuh bar formula. Tetapi katakan anda mahu pergi lebih jauh dan menambah isihan. Kita boleh berbuat demikian dalam bar formula dan panel sifat menunjukkan sekali lagi ikon fx dan mengarahkan pengubahsuaian ke bar formula. Dan sekali lagi, jika kita meringkaskan formula kepada sesuatu panel sifat boleh membaca dan menulis, ia sekali lagi boleh digunakan.

Isihan tiada kod.

Ini telah menjadi contoh ringkas. Kami percaya Power Fx membuat bahasa yang hebat untuk menerangkan interaksi tiada kod. Ia adalah ringkas, berkuasa dan mudah untuk menghuraikan dan menyediakan ruang yang sering diperlukan dengan "tiada tebing" sehingga kod rendah.

Kod pro

Kadang-kadang pembuat kod rendah membina perkara yang memerlukan bantuan pakar atau diambil alih oleh pemaju profesional untuk mengekalkan dan meningkatkan. Golongan profesional juga menghargai yang pembangunan kod rendah adalah lebih mudah, lebih cepat, dan tidak mahal daripada membina alat profesional. Tidak semua keadaan memerlukan kuasa penuh Visual Studio.

Golongan profesional mahu menggunakan alat profesional untuk menjadi paling produktif. Formula Power Fx boleh disimpan dalam fail sumber YAML, yang mudah diedit dengan Visual Studio Code, Visual Studio, atau mana-mana editor teks lain dan membolehkan Power Fx diletakkan di bawah kawalan sumber dengan GitHub, Azure DevOps, atau mana-mana sistem kawalan kod sumber lain.

Kod kod Visual Studio pro.

Kod pro GitHub.

Power Fx menyokong komponen berasaskan formula untuk perkongsian dan penggunaan semula. Kami mengumumkan sokongan untuk parameter kepada sifat komponen, membolehkan penciptaan fungsi yang ditakrifkan pengguna tulen dengan lebih banyak penambahbaikan dalam perjalanan.

Power Fx juga hebat dalam menyatukan komponen dan perkhidmatan yang dibina oleh profesional. Penyambung di luar kotak menyediakan akses kepada beratus-ratus sumber data dan perkhidmatan web, penyambung tersuai mendayakan Power Fx bercakap dengan sebarang perkhidmatan web REST dan komponen kod mendayakan Power Fx berinteraksi dengan JavaScript tersuai sepenuhnya pada skrin dan halaman.

Prinsip reka bentuk

Ringkas

Power Fx direka bentuk untuk mensasarkan khalayak pembuat, yang ahli belum dilatih sebagai pemaju. Sebarang kemungkinan, kami menggunakan pengetahuan yang sudah diketahui oleh khalayak atau boleh mengambil dengan pantas. Bilangan konsep yang diperlukan untuk berjaya dikekalkan pada minimum.

Bersifat ringkas juga baik untuk pembangun. Bagi khalayak pembangun, kami berhasrat untuk menjadi bahasa kod rendah yang mengurangkan masa yang diperlukan untuk membina penyelesaian.

Kekonsistenan Excel

Bahasa Microsoft Power Fx meminjam sangat banyak daripada bahasa formula Excel. Kami berusaha untuk mengambil kesempatan daripada pengetahuan dan pengalaman Excel daripada ramai pembuat yang juga menggunakan Excel. Jenis, pengendali, dan fungsi semantik adalah paling hampir dengan Excel.

Jika Excel tidak mempunyai jawapan, kami melihat ke SQL seterusnya. Selepas Excel, SQL ialah bahasa perisytiharan yang paling biasa digunakan seterusnya dan boleh memberikan panduan tentang operasi data dan jenis kukuh yang Excel tidak kukuh.

Perisytiharan

Pembuat menerangkan perkara yang mereka mahu logik mereka lakukan, bukan cara atau masa melakukannya. Ini membolehkan pengkompil untuk mengoptimumkan dengan melaksanakan operasi secara selari, menangguhkan kerja sehingga diperlukan dan prapengambilan dan menggunakan semula data cache.

Contohnya, dalam lembaran kerja Excel, penulis mentakrifkan hubungan antara sel tetapi Excel memutuskan masa dan urutan formula dinilai. Begitu juga, formula dalam aplikasi boleh dianggap sebagai "recalc-ing" seperti yang diperlukan berdasarkan tindakan pengguna, perubahan pangkalan data atau peristiwa pemasa.

Fungsi

Kami menyokong kepada fungsi tulen yang tidak mempunyai kesan sampingan. Ini menyebabkan logik yang lebih mudah difahami dan memberikan kebebasan kepada pengkompil untuk mengoptimumkan.

Tidak seperti Excel, aplikasi mengikut sifat melakukan keadaan mutasi—contohnya, aplikasi mempunyai butang yang menyimpan perubahan pada rekod dalam pangkalan data. Kerana itu, sesetengah fungsi, mempunyai kesan sampingan, walaupun kita mengehadkan ini secara praktikal.

Komposisi

Jika boleh, fungsi yang ditambah menulis dengan baik dengan fungsi yang sedia ada. Fungsi berkuasa boleh dihuraikan ke bahagian yang lebih kecil yang boleh digunakan dengan lebih mudah secara bebas.

Contohnya, kawalan Galeri tidak mempunyai sifat Sort dan Filter yang berasingan. Sebaliknya, fungsi Sort dan Filter fungsi diatur bersama ke dalam satu sifat Items. UI untuk menyatakan tingkah laku Sort dan Filter berlapis di atas sifat Items dengan menggunakan editor dua hala untuk sifat ini.

Ditaip dengan kuat

Jenis semua nilai diketahui pada masa susunan. Ini membenarkan pengesanan awal ralat dan cadangan kaya semasa pengarangan.

Jenis polimorf disokong, tetapi sebelum ia boleh digunakan, jenis tersebut mesti dipinkan ke jenis statik dan jenis itu mesti diketahui pada masa kompil. Fungsi IsType dan AsType disediakan untuk jenis ujian dan pemutus.

Jenis inferens

Jenis yang diperolehi daripada penggunaannya tanpa diisytiharkan. Contohnya, menetapkan pemboleh ubah kepada bilangan hasil dalam jenis pemboleh ubah yang diwujudkan sebagai nombor.

Penggunaan jenis yang bercanggah menyebabkan ralat masa susunan.

Pemisah perpuluhan sensitif tempatan

Sesetengah rantau di dunia menggunakan titik (.) sebagai pemisah perpuluhan, sementara yang lain menggunakan koma (,). Inilah perkara yang Excel turut lakukan. Ini biasanya tidak dilakukan dalam bahasa pengaturcaraan lain, yang menggunakan titik berkanun (.) secara umumnya sebagai pemisah perpuluhan untuk semua pengguna di seluruh dunia. Untuk menjadi mudah didekati oleh pembuat di semua tahap, adalah penting bahawa 3,14 adalah nombor perpuluhan bagi seseorang di Perancis yang telah menggunakan sintaks tersebut sepanjang hidup mereka.

Pilihan pemisah perpuluhan mempunyai kesan melata pada pemisah senarai, yang digunakan untuk argumen panggilan fungsi dan operator perantaian.

Pemisah perpuluhan bahasa pengarang Pemisah perpuluhan Power Fx Pemisah senarai Power Fx Operator perantaian Power Fx
. (titik) . (titik) , (koma) ; (koma bernoktah)
, (koma) , (koma) ; (koma bernoktah) ;; (koma bernoktah berganda)

Maklumat lanjut: Sokongan global

Tidak berorientasikan objek

Excel tidak berorientasikan objek dan juga Power Fx. Contohnya, dalam sesetengah bahasa, panjang rentetan dinyatakan sebagai sifat rentetan seperti "Hello World".length dalam JavaScript. Excel dan Power Fx sebaliknya menyatakan ini dari segi fungsi, sebagai Len( "Hello World" ).

Komponen dengan sifat dan kaedah adalah berorientasikan objek dan Power Fx mudah berfungsi dengannya. Tetapi jika boleh, kami lebih suka pendekatan berfungsi.

Boleh perluas

Pembuat boleh mencipta komponen dan fungsi mereka dengan menggunakan Power Fx itu sendiri. Pembangun boleh mencipta komponen dan fungsi mereka dengan menulis JavaScript.

Mesra pembangun

Walaupun pembuat adalah sasaran utama kami, kami cuba menjadi mesra pembangun sebaik mungkin. Jika ia tidak bercanggah dengan prinsip reka bentuk yang diterangkan sebelum ini, kami melakukan perkara dengan cara yang pemaju akan hargai. Contohnya, Excel tidak mempunyai keupayaan untuk menambah komen, jadi kami menggunakan baris seperti C dan komen sebaris.

Evolusi bahasa

Bahasa pengaturcaraan yang berkembang adalah perlu dan rumit. Semua orang—betul-betul—bimbang tentang perubahan, tidak kira niat baiknya, mungkin memecahkan kod sedia ada dan memerlukan pengguna untuk mempelajari corak baharu. Power Fx mengambil keserasian ke belakang dengan serius, tetapi kami juga percaya bahawa kami tidak selalu betul pada kali pertama dan kami akan mempelajari perkara yang terbaik sebagai komuniti secara kolektif. Kita mesti berkembang, dan sokongan reka bentuk Power Fx untuk evolusi bahasa dari awal lagi.

Setem versi bahasa disertakan dengan setiap dokumen Power Fx yang disimpan. Jika kami ingin membuat perubahan yang tidak serasi, kami akan menulis perkara yang kami panggil "penukar kompat belakang" yang menulis semula formula secara automatik pada kali seterusnya ia diedit. Jika perubahan itu adalah sesuatu yang utama yang perlu kita mendidik pengguna, kami juga akan memaparkan mesej dengan pautan ke dokumen. Menggunakan fasiliti ini, kami masih boleh memuatkan aplikasi yang dibina dengan versi pratonton Power Apps sejak bertahun-tahun yang lalu, walaupun semua perubahan telah berlaku sejak itu.

Contohnya, kami memperkenalkan fungsi ShowError untuk memaparkan sepanduk ralat dengan latar belakang merah.

Tunjukkan ralat.

Pengguna menyukainya, tetapi mereka juga meminta kami untuk menunjukkan sepanduk berjaya (latar belakang hijau) atau sepanduk maklumat (latar belakang biru). Jadi, kami datang dengan fungsi Notify yang lebih generik yang mengambil argumen kedua untuk jenis pemberitahuan. Kami hanya boleh menambah Notify dan menyimpan ShowError mengikut cara itu, tetapi sebaliknya kami menggantikan ShowError dengan Notify. Kami mengalih keluar fungsi yang sebelum ini berada dalam pengeluaran dan menggantikan fungsi tersebut dengan yang lain. Disebabkan terdapat dua cara untuk melakukan perkara yang sama, ini akan menyebabkan kekeliruan—terutamanya untuk pengguna baharu—dan, yang paling penting ia akan menambahkan kerumitan. Tiada siapa yang mengadu, semua orang menghargai perubahan dan kemudian beralih ke ciri Pemberitahuan seterusnya.

Ini adalah aplikasi yang sama kelihatan apabila dimuatkan ke dalam versi terkini Power Apps. Tiada tindakan diperlukan oleh pengguna untuk membuat transformasi ini berlaku, ia berlaku secara automatik apabila aplikasi dibuka.

Fungsi Beritahu menggantikan ShowError.

Dengan fasiliti ini, Power Fx boleh berkembang dengan pantas dan lebih agresif daripada kebanyakan bahasa pemprograman.

Tiada nilai yang tak tertakrif

Sesetengah bahasa, seperti JavaScript, menggunakan konsep nilai tidak ditakrifkan untuk pemboleh ubah yang tidak diawalkan atau sifat yang hilang. Demi kesederhanaan, kami telah mengelakkan konsep ini. Contoh yang tidak dapat ditentukan dalam bahasa lain dianggap sebagai sama ada ralat atau nilai kosong. Contohnya, semua pembolehubah yang tidak dikawal bermula dengan nilai kosong. Semua jenis data boleh mengambil nilai kosong.

Jenis data
Pengendali dan pengecam
Jadual
Pemboleh ubah
Logik imperatif
Sokongan global
Tatabahasa ungkapan
Tatabahasa formula YAML
Formula dalam aplikasi kanvas