„Microsoft Power Fx“ apžvalga
Power Fx yra mažai kodų naudojanti kalba, kuri bus naudojama visoje Microsoft Power Platform. Tai yra bendro tikslo, griežtai įvesta, deklaratyvi ir funkcionali programavimo kalba.
Power Fx yra išreikšta žmonėms draugišku tekstu. Tai yra mažai kodų naudojanti kalba, su kuria formuotojai gali dirbti tiesiogiai į „Excel” panašioje formulių juostoje arba „Visual Studio Code” teksto lange. „Mažai” sąvokoje „mažai kodų” yra dėl glaustos ir paprastos kalbos prigimties, darančios įprastas programavimo užduotys lengvomis tiek formuotojams, tiek kūrėjams. Tai įgalina pilną kūrimo spektrą nuo „jokio kodo”, skirto niekada anksčiau neprogramavusiems, iki „pro kodo”, skirto patyrusiems profesionalams, kuriems nebereikia mokytis ar perrašinėti kodo, tad skirtingos komandos įgalinamos bendradarbiavimui ir sutaupomas laikas ir išlaidos.
Pastaba.
- Microsoft Power Fx yra naujas formulių kalbos, skirtos drobės programoms, pavadinimas Power Apps. Ši apžvalga ir susiję straipsniai yra vis papildomi, mums ištraukiant kalbą iš drobės programų, integruojant ją su kitais „Microsoft Power Platform” produktais ir padarant ją pasiekiamą kaip atvirąjį kodą. Norėdami sužinoti daugiau ir įgyti patirties su šiandienine kalba, pradėkite su Pradėti su formulėmis drobės programose dokumentuose Power Apps ir nemokamai prisijungti prie Power Apps bandomosios versijos.
- Šiame straipsnyje mes minime formuotojus, kai aprašome funkciją, kuri gali būti naudojama bet kuriame programavimo įgūdžių spektro gale. Vartotoją vadiname kūrėju, jeigu funkcija yra labiau išplėsta ir, tikėtina, pernelyg sudėtinga tipiniam „Excel” vartotojui.
Power Fx susieja objektus kartu su deklaratyviomis į skaičiuokles panašiomis formulėmis. Pavyzdžiui, laikykime UI valdiklio ypatybę Matoma kaip „Excel” darbalapio langelį su susijusia formule, kuri suskaičiuoja jo reikšmę, remdamasi kitų valdiklių ypatybėmis. Formulės logika perskaičiuoja reikšmę automatiškai, panašiai kaip ir skaičiuoklė, o tai turi įtakos valdiklio matomumui.
Taip pat, Power Fx pasiūlo imperatyvo logiką, kai tai reikalinga. Darbalapiuose įprastai nėra mygtukų, kuriuos naudojant galima pateikti keitimus duomenų bazei, tačiau programose tokie mygtukai yra. Ta pati išraiškos kalba naudojama tiek deklaratyviai, tiek imperatyvo logikai.
Power Fx bus prieinama kaip atvirojo kodo programa. Šiuo metu integruota į drobės programas ir mes ištraukiame procesą iš Power Apps naudoti kituose Microsoft Power Platform produktuose kaip atvirąjį kodą. Daugiau informacijos: „Microsoft Power Fx” naudojimas „GitHub”
Šiame straipsnyje apžvelgiama kalba ir jos kūrimo principai. Norėdami sužinoti daugiau apie Power Fx, perskaitykite šiuos straipsnius:
- Duomenų tipai
- Veiklos vykdytojai ir identifikatoriai
- Lenteles
- Kintamųjų
- Imperatyvi logika
- Visuotinis palaikymas
- Išraiškos gramatika
- YAML formulės gramatika
Pasvarstymai apie skaičiuoklę
O kas jeigu galėtumėte sukurti programą taip pat lengvai, kaip ir „Excel” darbalapį?
O kas jeigu galėtumėte pasinaudoti jau turimomis skaičiuoklės žiniomis?
Tai buvo klausimai, įkvėpę Power Apps ir Power Fx sukūrimą. Šimtai milijonai žmonių kuria darbalapius su „Excel” kiekvieną dieną; suteikime jiems galimybę lengvai sukurti programą ir naudoti jiems jau žinomas „Excel” sąvokas. Atskyrę Power Fx iš Power Apps, mes atsakyme į šiuos klausimus apie kūrimo automatizavimą arba „Virtual Agent” ar kitus domenus.
Visos programavimo kalbos, įskaitant Power Fx, turi išraiškas: būdą skaičiavimą atspindėti skaičiais, eilutėmis arba kitų tipų duomenimis. Pavyzdžiui, mass * acceleration
daugelyje kalbų išreiškia mass
ir acceleration
sudauginimą. Išraiškos rezultatą galima išreikšti kintamuoju, naudojamu kaip procedūros argumentas, arba įdėti į didesnę išraišką.
Power Fx žengia žingsniu toliau. Išraiška savaime nesako nieko apie tai, ką ji apskaičiuoja. Nuo formuotojo priklauso, ar ji bus įdėta į kintamąjį ar perkelta į funkciją. Programojė Power Fx, užuot rašę tik konkrečios reikšmės neturinčią išraišką formulę kuri susieja išraišką su indentifikatoriumi. Jūs rašote force = mass * acceleration
kaip force
apskaičiavimo formulę. Pasikeitus mass
arba acceleration
, force
automatiškai atnaujinama į naują reikšmę. Išraiška apibūdino skaičiavimą, o formulė suteikė tam skaičiavimui pavadinimą ir panaudojo jį kaip receptą. Štai todėl Power Fx kaip formulių kalba.
Pavyzdžiui, ši formulė iš Rietuvės perpildos ieško eilutės atvirkštine tvarka. „Excel” programoje tai atrodo kaip šis vaizdas.
„Excel” formulių juostos su formule =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) ekrano kopija Langelyje A1 yra tekstas „Labas, pasauli! Su jumis puikiai susipažinti!" Langelyje A2 yra tekstas "jūs!"
Power Fx dirba su ta pačia formule, o langelio nuorodos pakeistos valdiklio ypatybės nuorodomis:
Formulės juostos Power Fx momentinė ekrano nuotrauka Power Apps. Žemiau =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) formulės esančiame įvesties lauke yra tekstas „Labas, pasauli! Labai su jumis susipažinkite!", – laišką su laišku. Tuo pačiu metu Žymos lauke pasirodo paskutinio žodžio raidės. Kai Įvesties lauke pasirodo pilnas tekstas, žodis „jumis!” pasirodo Žymos laukelyje.
Pakeitus Input
valdiklio reikšmę, valdiklis Label
automatiškai perskaičiuoja formulę ir parodo naują reikšmę. Čia nėra OnChange
įvykio apdorojimo programų, kaip įprasta kitose kalbose.
Dar vienas pavyzdys, kuriame naudojama ekrano Fill
spalvos formulė. Pasikeitus slankikliams, valdantiems raudoną, žalią ir mėlyną spalvas, perskaičiuojama fono spalva pasikeičia automatiškai.
Nėra slankiklio valdiklių OnChange
įvykių, kaip įprasta kitose kalbose. Nėra jokio būdo tiesiogiai nustatyti Fill
ypatybės reikšmę. Jei spalva neveikia taip, kaip tikėjotės, turite peržiūrėti šią vieną formulę, kad suprastumėte, kodėl ji neveikia. Jums nereikia ieškoti visoje programoje, kad surastumėte kodo dalį, nustatančią ypatybę netikėtu laiku; nėra laiko elemento. Visada išlaikomos teisingos formulės reikšmės.
Kai slankikliai nustatomi į tamsią spalvą, raudonos, žalios ir mėlynos spalvų žymos pasikeičia į baltą spalvą. Tai atliekama naudojant paprastą formulę Color
ypatybėje, kiekvienam žymos valdikliui.
Puiku yra tai, kad tai yra izoliuota nuo to, kas vyksta su Fill
spalva: tai yra du visiškai skirtingi skaičiavimai. Vietoj didelių monolitinių procedūrų, Power Fx logika įprastai susideda iš daugybės savarankiškų mažesnių formulių. Dėl to tai yra lengviau suprantama ir įjungiami patobulinimai, netrukdant esamai logikai.
Power Fx yra deklaratyvi kalba, kaip ir „Excel”. Formuotojas apibūdina, kokio elgesio nori, tačiau sistema nustato ir optimizuoja, kaip ir kada tai pasiekti. Kalbant praktiškai, didelė dalis darbo padaroma grynomis funkcijomis be šalutinio įsikišimo, o tai daro Power Fx funkcine kalba (vėl, kaip ir „Excel”).
Visada dinamiškai
Apibrėžiantis darbalapių aspektas yra tas, kad jie visada yra dinamiški, o pakeitimai atspindimi iškart. Darbalapyje nėra kompiliavimo ar vykdymo režimo. Modifikavus formulę arba įvedus reikšmę, darbalapis yra nedelsiant perskaičiuojamas, kad atspindėtų pakeitimus. Visos aptiktos klaidos nedelsiant iškyla į paviršių ir nekliudo likusiai darbalapio daliai.
Toks pat dalykas atliekamas ir su Power Fx. Didėjantis kompiliatorius yra naudojamas nuolatos palaikyti programos sinchronizavimą su duomenimis, su kuriais ji veikia. Pakeitimai yra automatiškai platinami per programos diagramą, darantys įtaką priklausomų skaičiavimų rezultatams, kurie gali sukelti valdiklių, pavyzdžiui, spalvos ar padėties, ypatybes. Papildantysis kompiliatorius taip pat suteikia turiningą formulės redagavimo patirtį naudojant „IntelliSense”, pasiūlymus, automatinis užbaigimą ir tipo patikrą.
Toliau pateiktoje animacijoje užsakymo numeris rodomas žymos valdiklyje, kuris priklauso nuo slankiklio valdiklio, net jei po juo esančiuose žymose yra dvi klaidos. Programa yra labai dinamiška ir interaktyvi. Pirmasis bandymas išspręsti problemą įvedant .InvalidName
lemia iškart rodomą raudoną liniją ir klaidą, kaip ir turėtų būti, tačiau programa tebeveikia.
Įvestas .Employee
sąlygoja Data
sritį įtraukti Darbuotojų lentelę, nuskaityti šios lentelės metaduomenis, o pasiūlymai stulpeliams yra iškart pateikiami. Ką tik perėjome per ryšį nuo vienos lentelės prie kitos ir sistema atliko reikiamus programos nuorodų pakeitimus. Taip pats nutinka ir įtraukiant .Customer
.
Po kiekvieno pakeitimo slankiklis dirba toliau su savo paskutine reikšme, o visi kintamieji išsaugo savo reikšmę. Užsakymo numeris visą laiką buvo rodomas viršutinėje žymoje, kaip ir turėtų. Programa visą laiką dirbo dinamiškai, apdorodama tiesioginius duomenis. Mes galime juos įrašyti, pasitraukti, o kiti gali juos atidaryti ir naudoti, kaip ir „Excel” programoje. Nėra kūrimo veiksmo, kompiliavimo, yra tik publikavimo veiksmas, skirtas nustatyti, kuri programos versija yra paruošta vartotojams.
Mažai kodų
Power Fx apibūdina veiklos logiką glaustomis, bet galingomis formulėmis. Dauguma logikos galima sumažinti iki vienos eilutės, turinčios daug išraiškingumo ir valdymo sudėtingesniems poreikiams patenkinti. Tikslas yra išlaikyti iki minimumo skaičių sąvoką, kurį turi suvokti formuotojas, skaičių, idealiu atveju ne didesnį nei „Excel” vartotojas jau žinotų.
Pavyzdžiui, jei užsakymui norite peržiūrėti darbuotojo vardą, rašykite Power Fx taip, kaip parodyta tolesnėje animacijoje. Be „Excel” sąvokų, vienintelis įtrauktas čia naudojamas konceptas yra taško „.” notacija, kuri yra skirta detalizuoti duomenų struktūrai, šiuo atveju .Employee.'First Name'
. Animacijoje rodomas susiejimas tarp Power Fx formulės dalių ir sąvokų, kurias reikia tiesiogiai koduoti lygiaverčiame „JavaScript”.
Pažvelkime nuodugniau į visus dalykus, kuriuos Power Fx daro dėl mūsų ir turimą optimizavimo laisvę, nes formulė buvo deklaratyvi:
Asinchroninis: visos duomenų Power Fx operacijos yra asinchroninės. Formuotojui nereikia to nurodyti, taip pat jam nereikia ir sinchronizuoti operacijų pasibaigus skambučiui. Formuotojui visai nereikia žinoti apie šią sąvoką, jam nereikia žinoti, kas yra „pažado” ar „lambda” funkcija.
Vietinis ir nuotolinis: Power Fx naudoja tą pačią sintaksę ir funkcijas duomenims, kurie yra vietiniai atmintyje ir nuotoliniu būdu jungia duomenų bazę arba tarnybą. Vartotojui nereikia galvoti apie šį skirtumą. Power Fx automatiškai perduoda tai, ką gali, į serverį dėl efektyvesnio filtravimų ir rūšiavimų apdorojimo.
Sąryšiniai duomenys: užsakymai ir klientai yra dvi skirtingos lentelės su ryšiu "daugelis su vienu". „OData” užklausai reikalingas „$expand” su žiniomis apie išorinį raktą, panašiai į funkciją Prisijungti SQL platformoje. Formulėje viso to nėra; tiesą sakant, duomenų bazės raktai yra kita sąvoka, apie kurią formuotojui nėra būtina žinoti. Formuotojas paprasčiausiai gali naudoti taško notaciją pasiekti visam ryšių grafui iš įrašo.
Projekcija: Rašydami užklausą, daugelis kūrėjų rašo
select * from table
, o tai grąžina visus duomenų stulpelius. Power Fx analizuoja visus stulpelius, naudojamus per visą programą, net ir visose formulės priklausomybėse. Projektavimas yra automatiškai optimizuojamas ir, dar kartą, formuotojui nereikia žinoti, ką reiškia „projektavimas”.Gauti tik tai, ko reikia: šiame pavyzdyje funkcija reiškia, kad reikia nuskaityti tik vieną įrašą ir tai yra viskas,
LookUp
kas grąžinama. Jeigu užklausiama daugiau įrašų naudojantFilter
funkcija—kurią atitikti gali tūkstančiai įrašų vienu metu grąžinamas tik vienas užsakymo duomenų puslapis su 100 įrašų viename puslapyje. Vartotojas turi pereiti per galeriją arba duomenų lentelę, kad pamatytų daugiau duomenų, kurie jam bus automatiškai pateikti. Formuotojas gali pagrįsti didelius duomenų rinkinius ir negalvoti apie duomenų užklausų ribojimą iki valdomų segmentų.Vykdoma tik tada, kai reikia: apibrėžėme etiketės
Text
valdiklio ypatybės formulę. Keičiantis pasirinktam kintamajam,LookUp
yra automatiškai perskaičiuojamas, o žyma atnaujinama. Formuotojui neprireikė rašyti „OnChange” apdorojimo programos pasirinkimui, jam taip pat nereikėjo prisiminti, kad nuo to priklauso žyma. Tai yra deklaratyvusis programavimas, aprašytas anksčiau: formuotojas nurodo, ką nori matyti žymoje, bet ne kaip, ar kada ji turi būti iškviesta. Jei ši žyma nematoma, nes rodoma ekrane, kuris nėra matomas arba kurioVisible
ypatybė yra klaidinga, šį skaičiavimą galime atidėti iki tol, kol žyma bus matoma ir efektyviai pašalinti ją, jeigu tai nutinka retai."Excel" sintaksės vertimas: "Excel" naudoja daugelis vartotojų, kurių dauguma žino, kad ampersandas (&) naudojamas eilučių sujungimui. JavaScript naudoja plius prisijungimą (+), ir kitas kalbas kaip tašką (.).
Rodomi pavadinimai ir lokalizacija:
First Name
naudojama formulėje, Power Fx onwind_firstname
naudojama "JavaScript" ekvivalentu. Be unikalaus loginio pavadinimo, „Microsoft Dataverse” ir „SharePoint” yra stulpelių ir lentelių rodomas pavadinimas. Rodomi pavadinimai dažnai yra daug patogesni vartotojui, kaip šiuo atveju, tačiau jie turi kitą svarbią savybę – juos galima lokalizuoti. Jei turite daugiakalbę komandą, kiekvienas komandos narys gali matyti lentelių ir laukų pavadinimus savo kalba. Visais naudojimo atvejais Power Fx užtikrina, kad teisingas loginis pavadinimas būtų automatiškai nusiunčiamas į duomenų bazę.
Jokio kodo
Jums nebūtina skaityti ir rašyti Power Fx norint pradėti išreikšti logiką. Yra daugybė tinkinimų ir logikos, kurie gali būti išreikšti per paprastus perjungiklius ir vieningosios sąsajos generatorius. Šie „jokio kodo” įrankiai buvo sukurti Power Fx rašymui ir skaitymui, kad būtų užtikrinta, jog yra pakankamai papildomo pajėgumo kažkam tai išplėtoti, kartu pripažįstant, kad „jokio kodo” įrankiai niekada nepasiūlys pilno kalbos išraiškingumo. Netgi naudojant „jokio kodo” darykles, formulių juosta yra svarbiausia Power Apps kad formuotojas būtų supažindintas su tuo, kas daroma jo vardu, kad jis galėtų pradėti mokytis Power Fx.
Pažvelkime į kelius pavyzdžius. „Power Apps” ypatybių skyde pateikiami „jokio kodo” perjungikliai ir mygtukai, skirti valdiklių ypatybėms. Praktiškai, dauguma ypatybių reikšmių yra pastovios. Galite naudoti spalvos daryklę, jei norite pakeisti Gallery
fono spalvą. Atkreipkite dėmesį, kad formulių juosta atspindi šį pakeitimą atnaujindama formulę į kitą RGBA
skambutį. Bet kuriuo metu galite pereiti į formulių juostą ir žengti žingsniu toliaušiame pavyzdyje naudojant ColorFade
spalvai koreguoti. Spalvos ypatybė vis tiek rodoma ypatybių skyde, tačiau užvedus pelės žymeklį pasirodo „fx” piktograma ir esate nukreipiamas į formulių juostą. Tai visiškai veikia dviem būdais: pašalinus ColorFade
, skambutis grąžina spalvą į tai, ką gali suprasti ypatybių juosta, o jūs galite tai panaudoti dar kartą spalvai nustatyti.
Štai sudėtingesnis pavyzdys. Galerijoje rodomas darbuotojų sąrašas iš „Dataverse”. „Dataverse” pateikia rodinius virš lentelės duomenų. Galime pasirinkti vieną iš šių rodinių, o formulė yra pakeičiama naudoti Filter
funkciją su šiuo rodinio pavadinimu. Du išplečiamuosius meniu galima panaudoti skambinimui į teisingą lentelę ir peržiūrai neliečiant formulių juostos. Tačiau tarkime, norite eiti toliau ir įtraukti rikiavimą. Tai galime padaryti formulių juostoje ir ypatybių skydas vėl rodys „fx” piktogramą ir nukreips modifikacijas į formulių juostą. Ir vėl, jei supaprastinsime formulę į tai, ką gali skaityti ir rašyti ypatybių skydas, ją vėl bus galima naudoti.
Tai buvo paprasti pavyzdžiai. Tikime, kad Power Fx yra puiki kalba apibūdinti „jokio kodo” sąveikoms. Tai glausta, galinga ir lengvai analizuojama kalba, suteikianti reikalingą pajėgumą tiek profesionalams „be klaidų”, tiek mažo kodo programuotojams.
Pro kodas
„Mažai kodų” formuotojai kartais sukuria dalykus, kuriems reikia eksperto pagalbos arba kurie yra perimami profesionalaus programų kūrėjo dėl priežiūros ir tobulinimo. Profesionalai taip pat vertina, kad kūrimas su mažai kodų gali būti lengvesnis, greitesnis ir mažiau kainuojantis nei profesionalaus įrankio kūrimas. Ne kiekvienai situacijai reikalingas pilnas „Visual Studio” pajėgumas.
Profesionalai nori naudoti profesionalius įrankius dėl didžiausio produktyvumo. Power Fx formules galima saugoti YAML šaltinio failai, kuriuos lengva redaguoti naudojant Visual Studio Code, Visual Studio, ar bet kokią kitą teksto rengyklę ir įjungti Power Fx šaltinį kontroliuoti GitHub, Azure DevOps, ar bet kurią kitą šaltinio kodo valdymo sistemą.
Power Fx palaiko formule pagrįstus komponentus bendrinimui ir pakartotiniam naudojimui. Mes paskelbėme parametrų palaikymą komponentų ypatybėms, pakeliui įgalinant grynų vartotojo apibrėžtų funkcijų kūrimą su daugiau patobulinimų.
Be to, Power Fx puikiai sujungia į visumą komponentus ir profesionalų sukurtas paslaugas. Visiškai parengtos jungtys teikia prieigą prie šimtų duomenų šaltinių ir žiniatinklio tarnybų, tinkinamos jungtys įgalina Power Fx kalbėtis su bet kuria REST wžiniatinklio tarnyba, o kodo komponentai įgalina Power Fx sąveikauti su visiškai tinkintu „JavaScript” ekrane ir puslapyje.
Kūrimo principai
Paprastumas
Power Fx sukurta tikslinei formuotojų auditorijai, kurios nariai nebuvo apmokyti kaip programų kūrėjai. Kur tik įmanoma, naudojame tokias žinias, kurias ši auditorija jau turėtų arba galėtų greitai įsisavinti. Išlaikomas minimalus skaičius sąvokų, kurios yra būtinos sėkmei.
Paprastumas taip pat yra gerai kūrėjams. Kūrėjų auditorijai siekiame būti mažo kodo kalba, kuri sumažina laiką, reikalingą sprendimo kūrimui.
„Excel” nuoseklumas
„Microsoft Power Fx” kalba daug skolinasi iš „Excel” formulių kalbos. Mes siekiame pasinaudoti daugelio formuotojų, taip pat naudojančių „Excel” programą, „Excel” žiniomis ir patirtimi. Tipai, operatoriai ir funkcijų semantika yra kaip įmanoma artimesni „Excel”.
Jei „Excel” neturi atsakymo, toliau žiūrime į SQL. Po „Excel”, SQL yra antra dažniausiai naudojama deklaratyvi kalba, galinti suteikti pagalbos atlikti duomenų operacijas ir griežtą įvedimą, ko negali „Excel”.
Deklaratyvi
Formuotojas apibūdina tai, ką jie nori, jog jų logika darytų, bet ne tiksliai kaip ar kada tai daryti. Tai leidžia kompiliatoriui optimizuoti atliekant operacijas lygiagrečiai, atidedant darbą iki tol, kol reikia, ir iš anksto iškviečiant bei pakartotinai naudojant talpykloje saugomus duomenis.
Pavyzdžiui, „Excel” darbalapyje autorius apibrėžia ryšius tarp langelių, tačiau „Excel” nusprendžia, kada ir kokia tvarka formulės bus vertinamos. Panašiai, programos formulės gali būti laikomos „perskaičiavimo” kaip reikalinga, priklausomai nuo vartotojo veiksmų, duomenų bazės pakeitimų ar laikmačio įvykių.
Funkcionalumas
Teikiame pirmenybę grynosioms funkcijoms, neturinčioms šalutinio poveikio. Tai lemia lengviau suprantamą logiką ir suteikia kompiliatoriui daug optimizavimo laisvės.
Skirtingai nei „Excel”, programos pagal savo prigimties būseną yra mutuojančios būsenospavyzdžiui, programos turi mygtukus, išsaugančius pakeitimus į duomenų bazės įrašą. Todėl kai kurios funkcijos turi šalutinį poveikį, nors mes jį apribojame tiek, kiek tai yra tikslinga.
Kūrimas
Įtrauktas funkcionalumas gerai dera su esamomis funkcijomis ten, kur įmanoma. Galingas funkcijas galima išskaidyti į mažesnes dalis, kurias galima lengviau panaudoti atskirai.
Pavyzdžiui, Galerijos valdiklis neturi atskirų Sort
ir Filter
ypatybių. Vietoj to, Sort
ir Filter
funkcijos yra sujungiamos į vieną Items
ypatybę. UI, skirta reikšti Sort
ir Filter
veikimą, yra sluoksniuojama viršuje Items
ypatybės, naudojant dvikryptę rengyklę šiai ypatybei.
Stiprūs tipai
Visų reikšmių tipai yra žinomi kompiliavimo metu. Tai leidžia ankstyvą klaidų aptikimą ir turiningus pasiūlymus kūrimo metu.
Polimorfiniai tipai yra palaikomi, tačiau prieš pradedant juos naudoti, jų tipą reikia prisegti prie statinio tipo, o tas tipas turi būti žinomas kompiliavimo metu. Funkcijos Ar tipas ir Kaip tipas yra pateikiamos tipų testavimui ir perdavimui.
Tipo išvada
Tipai yra išvedami iš jų naudojimo, jų nepaskelbiant. Pavyzdžiui, kintamojo nustatymas į skaičių lemia kintamojo tipo kaip skaičiaus nustatymą.
Dėl prieštaringų tipo naudojimo rezultatų įvyksta kompiliavimo laiko klaida.
Nuo vietovės priklausantys dešimtainiai skyrikliai
Kai kurie pasaulio regionai naudoja tašką ( „.”) kaip dešimtainį skyriklį, o kiti naudoja kablelį ( „,”). „Excel” irgi taip pat daro. Tai įprastai nėra daroma kitose programavimo kalbose, kurios dažniausiai naudoja kanoninį tašką („.”) kaip dešimtainį skyriklį visiems pasaulio vartotojams. Kad būtų kuo labiau prieinama visų lygių formuotojams, svarbu, kad 3,14
būtų dešimtainis skaičius žmogui Prancūzijoje, naudojusiam tokią sintaksę visą savo gyvenimą.
Dešimtainio skyriklio pasirinkimas turi pakopinį poveikį sąrašo skyrikliui, kuris naudojamas funkcijos iškvietimo argumentams, ir sujungimo į grandinę operatoriui.
Autoriaus kalbos dešimtainis skyriklis | "Power Fx" dešimtainis skyriklis | "Power Fx" sąrašo skyriklis | "Power Fx" susiejamas operatorius |
---|---|---|---|
. (taškas) | . (taškas) | , (kablelis) | ; (kabliataškis) |
, (kablelis) | , (kablelis) | ; (kabliataškis) | ;; (dvigubas kabliataškis) |
Daugiau informacijos: Visuotinis palaikymas
Orientuotas ne į objektą
Excel nėra orientuotas į objektą nei į Power Fx. Pavyzdžiui, kai kuriose kalbose eilutės ilgis yra išreiškiamas kaip eilutės ypatybė, tarkim, "Hello World".length
„JavaScript” kalboje. Vietoj to, „Excel” ir „Power Fx” išreiškia ilgį kaip funkciją, pavyzdžiui, Len( "Hello World" )
.
Komponentai su ypatybėmis ir metodais yra orientuoti į objektą ir Power Fx lengvai dirba su jais. Tačiau ten, kur įmanoma, teikiame pirmenybę funkciniam traktavimui.
Išplėtimas
Formuotojai gali kurti savo komponentus ir funkcijas naudodami patį Power Fx. Kūrėjai gali kurti savo komponentus ir funkcijas rašydami „JavaScript”.
Patogumas kūrėjams
Nors formuotojai yra mūsų pagrindinis tikslas, stengiamės dėl patogumo kūrėjams, kai tik įmanoma. Jei jis nėra prieštaringas anksčiau aprašytiems kūrimo principais, atliekame veiksmus tokiu būdu, kurį įvertintų kūrėjas. Pavyzdžiui, „Excel” neturi komentarų įtraukimo galimybės, taigi mes naudojame į C panašių eilučių ir įdėtuosius komentarus.
Kalbos evoliucija
Programavimo kalbų vystymasis yra reikalingas ir sudėtingas. Visi, teisingai, yra sunerimę, kad net ir gerų ketinimus turintis pakeitimas gali sulaužyti esamą kodą ir vartotojams reikėtų išmokti naują modelį. Power Fx rimtai žiūri į suderinamumą su ankstesnėmis versijomis, tačiau mes taip pat tvirtai tikime, kad ne visada pavyks iš pirmo karto ir mes kartu sužinosime, kas geriausia kaip bendruomenė. Mes turime tobulėti, o Power Fx nuo pat pradžių yra sukurta taip, kad palaikytų kalbos evoliuciją.
Kalbos versijos žyma yra pridedamas prie kiekvieno išsaugoto Power Fx dokumento. Jeigu norime atlikti nesuderinamą pakeitimą, mes rašysime tai, ką vadiname „suderinamumo su ankstesnėmis versijomis keitikliu”, kuris perrašo formulę automatiškai kitą kartą ją redaguojant. Jei pakeitimas yra didelis ir svarbus, apie kurį turime apšviesti vartotoją, mes taip pat parodysime pranešimą su nuoroda į dokumentus. Naudojant šią galimybę vis dar galima įkelti programas, sukurtas naudojant daugelio metų senumo „Power Apps” peržiūros versijas, nepaisant visų nuo tada įvykusių pakeitimų.
Pavyzdžiui, pristatėme ShowError
funkciją, skirtą rodyti klaidų reklaminę juostą raudoname fone.
Vartotojams ji labai patiko, tačiau jie taip pat paprašė mūsų būdo parodyti sėkmės reklaminę juostą (žalias fonas) arba informacinę juostą (mėlynas fonas). Todėl sugalvojome bendresnę funkciją Notify
, kurių pranešimų tipui imasi antro argumento. Mes galėjome tiesiog įtraukti Notify
ir palikti ShowError
tokią, kokia ji buvo, tačiau vietoj to, mes pakeitėme ShowError
į Notify
. Pašalinome funkciją, kuri anksčiau buvo gamyboje ir pakeitėme ją kita. Kadangi būtų du būdai padaryti tą patį dalyką, tai sukeltų painiavąypatingai naujiems vartotojams sukeltas sąmyšis ir, svarbiausia, tai būtų pridėję sudėtingumo. Niekas nesiskundė, visi įvertino pokytį ir tada perėjome prie savo kitos funkcijos Pranešti.
Taip atrodo ta pati programa, įkelta į naujausią „Power Apps” versiją. Vartotojui nereikėjo atlikti jokių veiksmų šiai transformacijai, ji įvyko automatiškai atidarius programą.
Su šia galimybe, Power Fx gali vystytis greičiau ir agresyviau nei dauguma programavimo kalbų.
Jokių neapibrėžtų reikšmių
Kai kurios kalbos, pavyzdžiui, „JavaScript” naudoja neapibrėžtos reikšmės konceptą neinicijuotiems kintamiesiems arba trūkstamoms ypatybėms. Dėl paprastumo mes išvengėme šio koncepto. Atvejai, kurie būtų neapibrėžti kitose kalbose, būtų laikomi klaida arba tuščia reikšme. Pavyzdžiui, visi panaikinto inicijavimo kintamieji prasideda tuščia reikšme. Visų duomenų tipai gali prisiimti tuščią reikšmę.
Susiję straipsniai
Duomenų tipai
Veiklos vykdytojai ir identifikatoriai
Lenteles
Kintamųjų
Imperatyvi logika
Visuotinis palaikymas
Išraiškos gramatika
YAML formulės gramatika
Formulės drobės programose