- Liittynyt
- 06.11.2016
- Viestejä
- 2 258
Määrittele funktio komponentin ulkopuolella ja laita export määritelmän eteen.Koodi:export const add = (a, b) = > a + b
Ok. Eikö siis ole mahdollista exportata funktiota, joka on komponentin sisällä?
Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
Hyvää joulua!
Osallistu io-techin piparikakkutalokilpailuun 2025 Linkki osallistumisketjuun >>>
SER-huutokaupat hyväntekeväisyyteen käynnissä! Linkki huutokauppaan >>>
Määrittele funktio komponentin ulkopuolella ja laita export määritelmän eteen.Koodi:export const add = (a, b) = > a + b
Ok. Eikö siis ole mahdollista exportata funktiota, joka on komponentin sisällä?
Ei, sillä se näkyy vain siinä komponentin namespacessa. Ja voit exportata myös normifunkkarin "export function foo() {..." tuon const-tyylin lisäksi. Täältä syntaksit:
export
Onko täällä ketjua jossa voisi esittää yleisiä työhön liittyviä kysymyksiä ohjelmointialalla työskenteleville? Siis vähän kuin YK:n bussikuskithreadi: Kysy tuoreelta HSL-bussinkuljettajalta, jos jokin asia askarruttaa ammattiini liittyen
Esimerkkikysymyksenä haluaisin kysyä vaikkapa että onko pariohjelmointi ( Pair programming - Wikipedia ) oikeasti käytössä, vai onko kyseessä vain joku vuosituhannen alun oppikirjoihin laitettu "näinkin voisi periaatteessa koodata" -juttu. En siis ole ikinä työskennellyt missään varsinaisessa softatalossa joten en tiedä tavallisen ohjelmoijan arjesta juuri mitään.
En ainakaan itse ole missään törmännyt siihen, että jotakin tiettyä hommaa alettaisiin ihan suunnitelmallisesti parisysteemillä tekemään, mutta kyllähän sitä useasti ongelmatapauksissa on tullut istuttua kaverin selän takana ja on luettu koodia läpi ja tehty debuggausta yhdessä. Yleensä tuntien pituinen pään näppikseen hakkaaminen on saatu ratkottua minuuteissa, kun on tuotu tuoreet silmät peliin.Onko täällä ketjua jossa voisi esittää yleisiä työhön liittyviä kysymyksiä ohjelmointialalla työskenteleville? Siis vähän kuin YK:n bussikuskithreadi: Kysy tuoreelta HSL-bussinkuljettajalta, jos jokin asia askarruttaa ammattiini liittyen
Esimerkkikysymyksenä haluaisin kysyä vaikkapa että onko pariohjelmointi ( Pair programming - Wikipedia ) oikeasti käytössä, vai onko kyseessä vain joku vuosituhannen alun oppikirjoihin laitettu "näinkin voisi periaatteessa koodata" -juttu. En siis ole ikinä työskennellyt missään varsinaisessa softatalossa joten en tiedä tavallisen ohjelmoijan arjesta juuri mitään.
Hakeminen millä? POST vai GET? Vähän näyttää siltä, että lähtee GETillä palvelimelle.Sqlite 3 ja node.js Windows 10:llä (koko systeemi localhostissa) tiedon syöttäminen text-muotoiseen kenttään ja sen hakeminen muodostaa seuraavan ongelman
"hyvää päivää" muuttuu muotoon: "hyv%C3%A4%C3%A4+p%C3%A4iv%C3%A4%C3%A4"
Miten ongelma kannattaisi hoitaa? Enkoodauksista varmastikin kyse, mutta en ole näitä hetkeen räplännyt.
Plussaa jos ratkaisu on porttautuva myös linux-servulle.
Hakeminen millä? POST vai GET? Vähän näyttää siltä, että lähtee GETillä palvelimelle.
Tuskin liittyy ajoympäristöön mitenkään.
Ajoympäristöllä ei toisaan ole tämän kanssa mitään tekemistä, tuo sinun teksti nyt on siis URL encoodattuna. Missä muodossa se on siellä kannassa?Node pyörii serverinä, jossa lokaalina sqlite database. Tiedot toki syötetään POST:lla serverille ja haetaan GET:llä webbisivulta. Node tekee tietokantaan laitot INSERT INTO-komennolla ja haut SELECT FROM komennolla.
Ajoympäristöllä ei toisaan ole tämän kanssa mitään tekemistä, tuo sinun teksti nyt on siis URL encoodattuna. Missä muodossa se on siellä kannassa?



Vasta muutamia tunteja Python-ohjelmointia harjoitelleena (en ole vielä oikein päässyt täysin sisälle tähän maailmaan) huomasin, että PyCharmissa tulee eri tulos riippuen ajaako komennon run-ikkunassa vaiko konsolissa. Miksi tuossa 'runissa' ei tule 'True'ta?
En vain osannut ajatella, että koodista olisi puuttunut jotain kun toisessa paikassa tulos oli kuitenkin oikea.

Haluaisin tehdä 3x3 html-ruudukon, jossa jokaisessa ruudussa on kuva. Tein tämän tablella ja sain järkevän taulukon keskelle sivua. Kuitenkin taulukkoon jäi riviväliä, jota en tuntikausien css-runkkaamisellakaan saanut pois. Netissä kertoivat, että kukaan täysjärkinen ei enää käytä taulukkoa sivun asetteluun vaan gridiä ja flexiä. Grid kuitenkin jättää todella paljon tilaa sivuille (ks kuva gridproblem). Css näyttää silloin tältä:
.imagematrix {
display:grid;
grid-template-columns:repeat(3, 1fr);
justify-items: center;
}
tällä toisella tavalla saan ne kasaan, mutta jäävät vasempaan laitaan (kuva gridproblem2)
.imagematrix {
display:grid;
grid-template-columns:repeat(3, 0.1fr);
justify-items: center;
}
Flexboxia voisin myös käyttää, mutta en osaa määrätä sille tiettyä lukittua sarakemäärää (3x3, 4x4, 5x5 taulukot esimerkiksi).
![]()
![]()
Haluaisin tehdä 3x3 html-ruudukon, jossa jokaisessa ruudussa on kuva. Tein tämän tablella ja sain järkevän taulukon keskelle sivua. Kuitenkin taulukkoon jäi riviväliä, jota en tuntikausien css-runkkaamisellakaan saanut pois. Netissä kertoivat, että kukaan täysjärkinen ei enää käytä taulukkoa sivun asetteluun vaan gridiä ja flexiä. Grid kuitenkin jättää todella paljon tilaa sivuille (ks kuva gridproblem). Css näyttää silloin tältä:
.imagematrix {
display:grid;
grid-template-columns:repeat(3, 1fr);
justify-items: center;
}
tällä toisella tavalla saan ne kasaan, mutta jäävät vasempaan laitaan (kuva gridproblem2)
.imagematrix {
display:grid;
grid-template-columns:repeat(3, 0.1fr);
justify-items: center;
}
Flexboxia voisin myös käyttää, mutta en osaa määrätä sille tiettyä lukittua sarakemäärää (3x3, 4x4, 5x5 taulukot esimerkiksi).
.flex {
display: flex;
}
.flex-horizontal-center {
justify-content: center;
}
.imageGrid {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.item {
background: lightblue;
width: 10em;
height: 10em;
}
<div class="flex flex-horizontal-center">
<div class="imageGrid">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
async def run():
metrics = await client.fetch_metrics()
print (metrics['A_CYC_TEMP_SUPPLY_CELL_AIR'])
asyncio.get_event_loop().run_until_complete(run())
Metrics-muuttujaan poimiintuu kaikki, mitä kone suoltaa ulos, mutta muuttujaan ei enää pääse käsiksi tuon osuuden jälkeen. Skriptissä on useampi eri osa, ja tarkoitus on kerätä alkuun kaikki data, joiden perusteella sitten tehdään säädöt mm. ilp:n pyyntilämpötilaan ja ilmanvaihtokoneen tavoitelämpötilaan.
Näin vähäisen kokemuksen säätäjänä aina ihmettelee, miksei tuohon ole voitu sisäänrakentaa yksinkertaista mahdollisuutta palauttaa lopputulos normaalisti kuten jossain tavallisessa funktiossa.
def do_stuff_with_metrics(metrics):
print('Starting to do stuff with the metrics')
# Do stuff here
async def run():
metrics = await client.fetch_metrics()
print("We received the metrics, let's use them!")
do_stuff_with_metrics(metrics)
asyncio.get_event_loop().run_until_complete(run())
annan skriptissä olevan toisen async-osuuden pyöriä omanaan
Joo, tässä tapauksessa ei pitäisi olla väliä. Toinen async hakee arvot ilmalämmityskoneelta (ja jatkossa käskyttää lämpötilan tavoitearvot eri koneille) ja toinen async käskyttää koneen puhallinnopeuden.Näissä kandee varmistaa, että onko suoritusjärjestyksellä väliä. Kun sulla on kaksi omaa async-pätkää, ne voi luultavasti suoriutua missä tahansa järjestyksessä. Joskus tällä on väliä, joskus ei.
Miksi netin esimerkeissä näkee usein, että ainakin C:ssä hakutaulut määritellään heksadesimaalimuodossa? Mitä etua sillä saavutetaan selväkielisen muodon sijaan?
Kyse on sulautettuihin järjestelmiin koodaamisesta, jos sillä on merkitystä.
static const __flash uint8_t lookup[256] =
{
0x00U, 0x07U, 0x0EU, 0x09U, 0x1CU, 0x1BU, 0x12U, 0x15U,
0x38U, 0x3FU, 0x36U, 0x31U, 0x24U, 0x23U, 0x2AU, 0x2DU,
0x70U, 0x77U, 0x7EU, 0x79U, 0x6CU, 0x6BU, 0x62U, 0x65U,
0x48U, 0x4FU, 0x46U, 0x41U, 0x54U, 0x53U, 0x5AU, 0x5DU,
0xE0U, 0xE7U, 0xEEU, 0xE9U, 0xFCU, 0xFBU, 0xF2U, 0xF5U,
0xD8U, 0xDFU, 0xD6U, 0xD1U, 0xC4U, 0xC3U, 0xCAU, 0xCDU,
0x90U, 0x97U, 0x9EU, 0x99U, 0x8CU, 0x8BU, 0x82U, 0x85U,
0xA8U, 0xAFU, 0xA6U, 0xA1U, 0xB4U, 0xB3U, 0xBAU, 0xBDU,
0xC7U, 0xC0U, 0xC9U, 0xCEU, 0xDBU, 0xDCU, 0xD5U, 0xD2U,
0xFFU, 0xF8U, 0xF1U, 0xF6U, 0xE3U, 0xE4U, 0xEDU, 0xEAU,
0xB7U, 0xB0U, 0xB9U, 0xBEU, 0xABU, 0xACU, 0xA5U, 0xA2U,
0x8FU, 0x88U, 0x81U, 0x86U, 0x93U, 0x94U, 0x9DU, 0x9AU,
0x27U, 0x20U, 0x29U, 0x2EU, 0x3BU, 0x3CU, 0x35U, 0x32U,
0x1FU, 0x18U, 0x11U, 0x16U, 0x03U, 0x04U, 0x0DU, 0x0AU,
0x57U, 0x50U, 0x59U, 0x5EU, 0x4BU, 0x4CU, 0x45U, 0x42U,
0x6FU, 0x68U, 0x61U, 0x66U, 0x73U, 0x74U, 0x7DU, 0x7AU,
0x89U, 0x8EU, 0x87U, 0x80U, 0x95U, 0x92U, 0x9BU, 0x9CU,
0xB1U, 0xB6U, 0xBFU, 0xB8U, 0xADU, 0xAAU, 0xA3U, 0xA4U,
0xF9U, 0xFEU, 0xF7U, 0xF0U, 0xE5U, 0xE2U, 0xEBU, 0xECU,
0xC1U, 0xC6U, 0xCFU, 0xC8U, 0xDDU, 0xDAU, 0xD3U, 0xD4U,
0x69U, 0x6EU, 0x67U, 0x60U, 0x75U, 0x72U, 0x7BU, 0x7CU,
0x51U, 0x56U, 0x5FU, 0x58U, 0x4DU, 0x4AU, 0x43U, 0x44U,
0x19U, 0x1EU, 0x17U, 0x10U, 0x05U, 0x02U, 0x0BU, 0x0CU,
0x21U, 0x26U, 0x2FU, 0x28U, 0x3DU, 0x3AU, 0x33U, 0x34U,
0x4EU, 0x49U, 0x40U, 0x47U, 0x52U, 0x55U, 0x5CU, 0x5BU,
0x76U, 0x71U, 0x78U, 0x7FU, 0x6AU, 0x6DU, 0x64U, 0x63U,
0x3EU, 0x39U, 0x30U, 0x37U, 0x22U, 0x25U, 0x2CU, 0x2BU,
0x06U, 0x01U, 0x08U, 0x0FU, 0x1AU, 0x1DU, 0x14U, 0x13U,
0xAEU, 0xA9U, 0xA0U, 0xA7U, 0xB2U, 0xB5U, 0xBCU, 0xBBU,
0x96U, 0x91U, 0x98U, 0x9FU, 0x8AU, 0x8DU, 0x84U, 0x83U,
0xDEU, 0xD9U, 0xD0U, 0xD7U, 0xC2U, 0xC5U, 0xCCU, 0xCBU,
0xE6U, 0xE1U, 0xE8U, 0xEFU, 0xFAU, 0xFDU, 0xF4U, 0xF3U
};
Alla esimerkki esimerkistä. Minusta tuo olisi paljon selvempi kymmenjärjestelmällä tehtynä.
Koodi:static const __flash uint8_t lookup[256] = { 0x00U, 0x07U, 0x0EU, 0x09U, 0x1CU, 0x1BU, 0x12U, 0x15U, 0x38U, 0x3FU, 0x36U, 0x31U, 0x24U, 0x23U, 0x2AU, 0x2DU, 0x70U, 0x77U, 0x7EU, 0x79U, 0x6CU, 0x6BU, 0x62U, 0x65U, 0x48U, 0x4FU, 0x46U, 0x41U, 0x54U, 0x53U, 0x5AU, 0x5DU, 0xE0U, 0xE7U, 0xEEU, 0xE9U, 0xFCU, 0xFBU, 0xF2U, 0xF5U, 0xD8U, 0xDFU, 0xD6U, 0xD1U, 0xC4U, 0xC3U, 0xCAU, 0xCDU, 0x90U, 0x97U, 0x9EU, 0x99U, 0x8CU, 0x8BU, 0x82U, 0x85U, 0xA8U, 0xAFU, 0xA6U, 0xA1U, 0xB4U, 0xB3U, 0xBAU, 0xBDU, 0xC7U, 0xC0U, 0xC9U, 0xCEU, 0xDBU, 0xDCU, 0xD5U, 0xD2U, 0xFFU, 0xF8U, 0xF1U, 0xF6U, 0xE3U, 0xE4U, 0xEDU, 0xEAU, 0xB7U, 0xB0U, 0xB9U, 0xBEU, 0xABU, 0xACU, 0xA5U, 0xA2U, 0x8FU, 0x88U, 0x81U, 0x86U, 0x93U, 0x94U, 0x9DU, 0x9AU, 0x27U, 0x20U, 0x29U, 0x2EU, 0x3BU, 0x3CU, 0x35U, 0x32U, 0x1FU, 0x18U, 0x11U, 0x16U, 0x03U, 0x04U, 0x0DU, 0x0AU, 0x57U, 0x50U, 0x59U, 0x5EU, 0x4BU, 0x4CU, 0x45U, 0x42U, 0x6FU, 0x68U, 0x61U, 0x66U, 0x73U, 0x74U, 0x7DU, 0x7AU, 0x89U, 0x8EU, 0x87U, 0x80U, 0x95U, 0x92U, 0x9BU, 0x9CU, 0xB1U, 0xB6U, 0xBFU, 0xB8U, 0xADU, 0xAAU, 0xA3U, 0xA4U, 0xF9U, 0xFEU, 0xF7U, 0xF0U, 0xE5U, 0xE2U, 0xEBU, 0xECU, 0xC1U, 0xC6U, 0xCFU, 0xC8U, 0xDDU, 0xDAU, 0xD3U, 0xD4U, 0x69U, 0x6EU, 0x67U, 0x60U, 0x75U, 0x72U, 0x7BU, 0x7CU, 0x51U, 0x56U, 0x5FU, 0x58U, 0x4DU, 0x4AU, 0x43U, 0x44U, 0x19U, 0x1EU, 0x17U, 0x10U, 0x05U, 0x02U, 0x0BU, 0x0CU, 0x21U, 0x26U, 0x2FU, 0x28U, 0x3DU, 0x3AU, 0x33U, 0x34U, 0x4EU, 0x49U, 0x40U, 0x47U, 0x52U, 0x55U, 0x5CU, 0x5BU, 0x76U, 0x71U, 0x78U, 0x7FU, 0x6AU, 0x6DU, 0x64U, 0x63U, 0x3EU, 0x39U, 0x30U, 0x37U, 0x22U, 0x25U, 0x2CU, 0x2BU, 0x06U, 0x01U, 0x08U, 0x0FU, 0x1AU, 0x1DU, 0x14U, 0x13U, 0xAEU, 0xA9U, 0xA0U, 0xA7U, 0xB2U, 0xB5U, 0xBCU, 0xBBU, 0x96U, 0x91U, 0x98U, 0x9FU, 0x8AU, 0x8DU, 0x84U, 0x83U, 0xDEU, 0xD9U, 0xD0U, 0xD7U, 0xC2U, 0xC5U, 0xCCU, 0xCBU, 0xE6U, 0xE1U, 0xE8U, 0xEFU, 0xFAU, 0xFDU, 0xF4U, 0xF3U };
Se olikin vain esimerkki. Vastaavaa näkee myös esim. trigonometristen funktioiden arvojen kanssa.Näyttäisi jonkinlaiselta CRC8 taulukolta, eli hakee 8-bittiselle tavulle sitä vastaavan CRC8 tarkisteen. En nyt hoksaa millä tavalla tuo olisi yhtään sen selvempi desimaaleina.
Tämä. Kaksi heksaa vastaa 8 bittiä, joten heksana on paljon helpompi pyöritellä lukuja, joille tehdään bittioperaatioita. Arvoista myös näkee, mahtuvatko ne tietynpituiseen muuttujaan.Mitä mahdat tarkoittaa selväkielisellä? Heksadesimaali on C-veteraanille selväkielistä.
Noin yleisellä tasolla, heksadesimaaliluvun ja tietotyyppien pituudella on suora vastaavuus, ja bittikenttiä/maskeja nyplätessä yhden heksan muuttaa päässä nopeasti binaariksi.
Lisäksi sulautetuissa järjestelmissä ja muussa rautaläheisessä ohjelmoinnissa on usein tarpeen käpälöidä suoraan muistiosoitteita, jotka ovat selkeämpiä heksadesimaalina, ja rekistereitä joiden koko on määrätty ja voi myös sisältää bittikentän.
Näin itsekin näen asian. Toki alkuun ja tottumattomalle hexa saattaa olla vaikeaselkoista. Joillekin on lisäksi helpompi hahmottaa numeroita suoraan, kuin hexadesimaaleja tmv. Omalla kokemuksella kannattaa opetella elämään noiden hexadesimaalien kanssa. Kuten jo sanottu mm. bittioperaatiot on lopulta helpompi hahmottaa noin.Tämä. Kaksi heksaa vastaa 8 bittiä, joten heksana on paljon helpompi pyöritellä lukuja, joille tehdään bittioperaatioita. Arvoista myös näkee, mahtuvatko ne tietynpituiseen muuttujaan.
Esimerkiksi mahtuuko tämä luku 32-bittiseen muuttujaan: 4294967173?
Entä tämä: 0xFFFFFF85?
edit: Tuli juuri töissä vastaan ihan aitokin esimerkki: nand-flashin lohkokoko on 128 kilotavua. Halusin tyhjentää osion, jonka koko oli 91 lohkoa. Kumpi esitysmuoto on helpompi: 11927552 vai b60000?
Se olikin vain esimerkki. Vastaavaa näkee myös esim. trigonometristen funktioiden arvojen kanssa.
Totta tämäkin. Desimaalilukuina taulukkoa ei saisi tasattua siististi. Heksoina arvoista saadaan samanpituisia laittamalla nollia eteen, mutta esimerkiksi 014 ei olekaan desimaaliluku, vaan oktaali.Aika usein myös tuollaiset hakutaulut ovat generoitua koodia eikä ketään kiinnosta tarkalleen mitä lukuarvoja taulukossa on, joten jo edellä mainitut syyt ja se että heksataulukoista saadaan siistimmät (vrt. tuo ylempi taulu, 8-bittisiä arvoja heksanumeroina, 8 per rivi, 32 riviä = uint8_t[256] ) painaa enemmän vaakakupissa kuin se että yksittäisen arvon näkee suoraan desimaalina.
Ainakin joskus, jos niillä liukuluvuilla meinataan esimerkiksi tehdä mustaa magiaa bittioperaatioiden muodossaLaitetaanko liukuluvutkin heksoina?

declare {var1,var2}+="test string"$'\n'
Bash:ssa näyttäisi tämä toimivan ok:
Koodi:declare {var1,var2}+="test string"$'\n'
Eli tarkoitus tallentaa useampaan muuttujaan sama sisältö (edellisten jatkoksi) kerralla. Ilman tuota "declare":a ei toimi. Yrittänyt googlettaa että onko tämä tapa ihan validi eikä ole mitään sudenkuoppia mutta ei tahdo löytyä mitään vastaavaa esimerkkiä tuosta "declare {a,b,...}=" toiminnosta. Kaikki muut "useaan muuttujaan sama sisältö" esimerkit joita löydän ovat enemmän tai vähemmän monimutkaisempia.
Samalla jos joku voi varmistaa, että tuon " $'\n' " käyttö on ihan ok kun haluaa lisätä uuden rivin muuttujaan?
Ei ole mitään pakkoa juuri noin tehdä.Miksipä ei jos välttämättä haluaa sen noin tehdä
var1+="test string"$'\n'
var2+="test string"$'\n'
Ihan näppärältä näyttää. Itse debuggaan aika tarkasti oman koodin (tai ainakin yritän parhaani) joten ei oikein ole tarvetta..Jos muuten bash/shellscriptejä vääntää enemmän niin shellcheck on varsin mainio apuväline.
Kaippa tuo "{a,b,...}" on joku sekvenssi/ryhmittely ja jotenkin niihin kaikkiin menee tuo yksi ja sama tieto talteen.
Ihan näppärältä näyttää. Itse debuggaan aika tarkasti oman koodin (tai ainakin yritän parhaani) joten ei oikein ole tarvetta..
Joo, itsekin yllätyin kun leikin ja kokeilin eri jippoja saada toimimaan. Jos muistan oikein, sävelsin tuon "oman versioni" kutakuinkin tämänlaisesta koodinpätkästä jonka luin varmaan stackexchangesta (en muista enää tarkasti ja voi olla virheitä):Brace Expansion (Bash Reference Manual)
Lähinnä vähän yllättää että tuo toimii odotetulla tavalla declaren yhteydessä.
export var{1,2,3}="jotain"
Käytämme välttämättömiä evästeitä, jotta tämä sivusto toimisi, ja valinnaisia evästeitä käyttökokemuksesi parantamiseksi.